Heim > Backend-Entwicklung > C++ > Hauptteil

Wie erhalte ich das aktuelle Verzeichnis in C?

Linda Hamilton
Freigeben: 2024-11-09 03:32:02
Original
274 Leute haben es durchsucht

How to Get the Current Directory 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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage