Probleme mit Dateizugriff bei TFileStream



  • Hallo vielleicht kann mir jemand helfen,

    ich möchte eine Datei zwischen zwei PCs austauschen. Mit TFileStream
    habe ich jedoch folgends Problem:
    a) wenn nur mit "fmOpenRead" geoeffnet wird, wird mir der Zugriff verweigert
    --> Datei konnte nicht geöffnet werden
    b) Versuch mit "fmOpenRead | fmShareDenyNone" : Datei kann zwar gelesen
    werden, aber kann nach abarbeiten des Programmstücks (siehe unten)
    nicht mehr gelöscht werden solange das Programm läuft.
    Bemerkenswert ist, dass vor Aufruf dieses Programmstücks die entspr.
    Datei aus einem anderen Programm (Windows-Explorer) gelesen und gelöscht
    werden kann.
    c) Versuch mit "fmOpenRead | fmShareDenyNone" hat den gleichen Effekt
    wie b)

    Eigentlich sollte doch mit MyFStream->Free() die Datei wieder freigegeben
    werden oder muss man dies explizit machen?
    Benutze übrigends XP und habe eigentlich alle Benutzer-Rechte.

    TFileStream *MyFStream;
    MyFStream = new TFileStream(fname, fmOpenRead | fmShareDenyNone);
    try
    {
    NMStrm1->Host = PartnerIP;
    NMStrm1->FromName = fname + comment;
    NMStrm1->PostIt(MyFStream);
    if( testfile )
    fprintf( testfile, "-> %s\n", fname.c_str() );

    }
    catch(...)
    {
    }
    MyFStream->Free();

    Danke für die Hilfe
    Juergen



  • Original erstellt von nav:
    MyFStream->Free();

    Schon in der Hilfe gelesen, was zum Thema Free() steht?

    -junix



  • "delete MyFStream" anstatt "MyFStream->Free()" hat den gleichen
    Effekt, daran liegts nicht.



  • Hallo,

    Wenn bei dir a) nicht funktioniert, ist die Datei wohl noch ein zweites mal geöffnet. Dann kannst du sie natürlich auch nicht löschen.

    Ciao


Anmelden zum Antworten