Hallo
ich habe mir eine Funktion geschrieben um zu Überprüfen ob man auf eine Datei zugriff hat und wenn das der Fall ist wird sie gelöscht und eine neu leere Datei am gleichen Ort mit gleichem Namen erstellt.


Wofür soll das gut sein ?
Wenn man z.B. die Windows host Datei ändern möchte
Wir geprüft:
- Datei vorhanden ?
- Löschen (optional)
- wenn gelöscht wurde neu erstellen
- Kann die Datei geöffnet werden ?
hat alles geklappt wir ein TRUE zurückgegeben.

So nun meine Frage:
Kann man das ganze noch einfacher und kürzer schreiben ??
Und gibt es mehr möglichkeiten wenn ein FALSE kommt als nur abzubrechen ?



Hier der Code
Code:
bool checkfile(char* Pfad, bool Del)
{
 FILE* Datei;
// Datei vorhanden ?
     if((GetFileAttributes(Pfad) == INVALID_FILE_ATTRIBUTES))                   // Überprüfen ob Datei vorhanden
     {                                                                          // wenn nein
        if((Datei = fopen(Pfad,"w")) == NULL)                                   // Datei erstellen
        {                                                                       // Wenn erstellen fehlgeschlagen
        return FALSE;         
        }
     fclose(Datei);                                                             // Datei schießen
     }
// Löschen
     else if (Del == TRUE)                                                      // dann Datei löschen
     {
      if (remove(Pfad)!=0)                                                      // Datei löschen
      {                                                                         // wenn fehlgeschlagen 
      // Attri ändern
      SetFileAttributes(Pfad, FILE_ATTRIBUTE_READONLY);                         // Attribute ändern
      SetFileAttributes(Pfad, FILE_ATTRIBUTE_NORMAL);                           // Attribute ändern
          if (remove(Pfad)!=0)                                                  // Datei löschen
          {                                                                     // wenn fehlgeschlagen 
          return FALSE; 
          }
      }
     }
// Kann geöffnet werden ?
     if((Datei = fopen(Pfad,"w")) == NULL)
     {
     SetFileAttributes(Pfad, FILE_ATTRIBUTE_READONLY);                          // Attribute ändern
     SetFileAttributes(Pfad, FILE_ATTRIBUTE_NORMAL);                            // Attribute ändern 
       if((Datei = fopen(Pfad,"w")) == NULL)
       {
       return FALSE;         
       }
     }     
return TRUE;                                                                    // Wenn Datei O.K. ist True
}
:lol Freu mich auf eure Vorschläge.
Gruß Dante