Ich bin verwirrt mit dem Verhalten dieses Stück Code.GetFileAttributes gibt FILE_ATTRIBUTE_DIRECTORY für ungültige Eingabe zurück
const char* file_name = "/ /";
auto attributes = GetFileAttributes(TEXT(file_name)); // same result without TEXT macro
if (attributes == INVALID_FILE_ATTRIBUTES)
{
//error
}
else if (attributes == FILE_ATTRIBUTE_DIRECTORY)
{
//directory
}
Dies ist ungültig Name für eine Datei oder ein Verzeichnis, so würde ich erwarten, dass dieser INVALID_FILE_ATTRIBUTES zurückzukehren. Kompiliert mit VS2015 läuft auf win8. Vielleicht liegt das an einem Vorwärts-Zeichen? Und vielleicht gibt es eine winAPI-Funktion, um die Eingabe zu validieren?
dank
Es gibt '-1' für mich zurück (Fehler). –
ANSI oder Unicode? Gibt es einen Grund, warum Sie das TEXT-Makro verwenden? Sicherlich können Sie bei Unicode bleiben. –
* "Dies ist ein ungültiger Name für eine Datei oder ein Verzeichnis" * - Warum? Sieht für mich wie ein vollkommen gültiger Verzeichnisname aus. – IInspectable