Heim >Backend-Entwicklung >C++ >Wie erhalte ich das aktuelle Verzeichnis in C?
Abrufen des aktuellen Verzeichnisses
Das Abrufen des aktuellen Verzeichnisses ist eine häufige Aufgabe in der Programmierung. Angenommen, Sie möchten eine Datei in demselben Verzeichnis erstellen, in dem die ausführbare Datei ausgeführt wird. Dazu müssen Sie den Pfad des aktuellen Verzeichnisses ermitteln.
Wenn Sie jedoch die Funktion GetCurrentDirectory() wie unten gezeigt verwenden:
LPTSTR NPath = NULL; DWORD a = GetCurrentDirectory(MAX_PATH, NPath); HANDLE hNewFile = CreateFile(NPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
kann es zu einer Ausnahme kommen. Anstelle von GetCurrentDirectory() sollten Sie GetModuleFileName() verwenden, um den ausführbaren Pfad abzurufen.
TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName(NULL, buffer, MAX_PATH);
Um den Verzeichnispfad ohne den Dateinamen zu erhalten, können Sie die folgende C-Funktion verwenden:
#include <windows.h> #include <string> #include <iostream> std::wstring ExePath() { TCHAR buffer[MAX_PATH] = { 0 }; GetModuleFileName(NULL, buffer, MAX_PATH); std::wstring::size_type pos = std::wstring(buffer).find_last_of(L"\/"); return std::wstring(buffer).substr(0, pos); } int main() { std::cout << "my directory is " << ExePath() << "\n"; }
Das obige ist der detaillierte Inhalt vonWie erhalte ich das aktuelle Verzeichnis in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!