Existierende Datei löschen, dabei Prüfen ob gerade verwendet

gabifi

Mitglied
In einem CFIleDialog kann ich ja mit OFN_OVERWRITEPROMPT das Überschreiben prüfen lassen.

Nun möchte ich jedoch die zu überschreibende Datei vorher komplett löschen.
Dies gelingt mir, wenn die Datei nicht verwendet wird, und zwar mit:
Code:
hFile = CreateFile(dlg.GetPathName(),           // file to open 
			GENERIC_READ,              // open for reading 
			FILE_SHARE_READ,           // share for reading 
			NULL,                      // default security 
			OPEN_EXISTING,             // existing file only 
			FILE_ATTRIBUTE_NORMAL,     // normal file 
			NULL);                     // no attr. template 
			 
if(hFile != INVALID_HANDLE_VALUE)
{
	CloseHandle(hFile);
	if(!DeleteFile(dlg.GetPathName()))
         return;
}

Jeodch kan ich so nicht abfangen, wenn die Datei auch noch gearde geöffnet ist, denn dann gibt ja beim Hanlde einen INVALID_HANDLE_VALUE und ich steh wieder ganz oben beimeinem Problem.

Vielleicht hat ja jemand ne elegenate Lösung parat, würd mich freuen.
An sich würde mir ne Methode reichen, die prüft ob eine Datei vorhanden, wenn Sie geöffnet ist dürfte ja DeleteFile() nen fehler geben und ich kann das so abfangen.

Danke
Gabriel
 
Zurück