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 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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