54 Stimmen

Wie kann ich feststellen, ob ein gegebener Pfad ein Verzeichnis oder eine Datei ist? (C/C++)

Ich verwende C, und manchmal muss ich Pfade behandeln wie

  • C:\Whatever
  • C:\Whatever\
  • C:\Whatever\Somefile

Gibt es eine Möglichkeit zu prüfen, ob ein bestimmter Pfad ein Verzeichnis oder eine Datei ist?

0voto

Juan Carlos Punkte 101

Dies ist eine einfache Methode unter Verwendung der GetFileAttributesW Funktion, um zu prüfen, ob der Pfad ein Verzeichnis unter Windows ist. Wenn der empfangene Pfad ein Verzeichnis oder ein Dateipfad sein muss, können Sie davon ausgehen, dass es sich um einen Dateipfad handelt, wenn es kein Verzeichnispfad ist.

bool IsDirectory(std::wstring path)
{
    DWORD attrib = GetFileAttributes(path.c_str());

    if ((attrib & FILE_ATTRIBUTE_DIRECTORY) != 0)
        return true;

    return false;
}

-2voto

anurag-jain Punkte 1340

Wenn Sie Folgendes verwenden CFile können Sie versuchen

CFileStatus status;
    if (CFile::GetStatus(fileName, status) && status.m_attribute == 0x10){
       //it's directory
}

-5voto

Varvara Punkte 21

Einfacher ist es, FileInfo.isDir() in Qt auszuprobieren

7 Stimmen

Könnten Sie erklären, warum man eine GUI-Bibliothek verwenden sollte, wenn ein Dateisystemzugriff in Frage steht?

0 Stimmen

Danke, das ist genau das, wonach ich gesucht habe. (Über Google.)

4 Stimmen

Warum in aller Welt haben Sie QT hierher 'geschleppt'?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X