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