Wie überprüft man, ob das Verzeichnis bereits in MFC (VC ++) existiert? Ich verwende den folgenden Code, um den aktuellen Anwendungspfad zu erhalten, und dort erstelle ich den NDSLog-Ordner so dass alle meine Logfiles dort platzieren sollten, jetzt möchte ich die Bedingung überprüfen, ob der NDSLog-Ordner bereits existiert dont create. Wie geht das?
Danke.
%Vor% Der einfachste Weg zu prüfen, ob eine Datei / ein Verzeichnis existiert, ist GetFileAttributes
:
Beachten Sie, dass die Funktion INVALID_FILE_ATTRIBUTES
zurückgibt, auch wenn sie aus einem anderen Grund fehlschlägt, z. B. keine Berechtigungen für den Zugriff auf die Datei zu haben. Überprüfen Sie daher den Rückgabewert von CreateDirectory
, um sicherzustellen, dass der Vorgang erfolgreich war.
Sie müssen eigentlich nicht prüfen, ob das Verzeichnis bereits existiert; CreateDirectory
wird einen Fehlercode setzen, wenn das Verzeichnis bereits existiert:
Wie wäre es mit PathIsDirectory()
? Im ursprünglichen Beispiel können Sie PathRemoveFilespec()
gefolgt von PathCombine()
verwenden, um einen neuen Dateinamen / Erweiterung hinzuzufügen. In dem unwahrscheinlichen Fall, dass Ihr Ziel nur Windows 8 oder höher ist, gibt es sicherere PathCch...()
-Gerüche dieser Funktionen.
FindFirstFile
. Trotz der "Datei" im Namen, wird es Verzeichnisse sehr gut finden.
Sie können _accees oder _waccess von C runtime verwenden. Dies ist die msdn-Seite und Sie können die Beispielnutzung sehen Und Sie müssen sich auch nicht darum kümmern, ob das Verzeichnis bereits existiert, weil CreateDirectory ERROR_ALREADY_EXISTS überprüft und zurückgibt, wenn es existiert. Sie können von hier aus (Rückgabecodes) sehen.
Tags und Links visual-c++ mfc