Maison >développement back-end >C++ >Comment récupérer le chemin du répertoire actuel en C ?

Comment récupérer le chemin du répertoire actuel en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-08 10:29:02765parcourir

How to Retrieve the Current Directory Path in C  ?

Obtenir le répertoire actuel en C

Lors de la création d'un fichier dans le répertoire actuel où le programme s'exécute, il est crucial d'obtenir le chemin correct. Cependant, dans votre code, vous rencontrez une exception lors de GetCurrentDirectory().

Comprendre l'exception

L'exception est probablement causée par un argument non valide transmis à GetCurrentDirectory. Vous devez allouer un tampon pour stocker le chemin du répertoire avant d'appeler cette fonction.

Solution alternative utilisant GetModuleFileName

Pour récupérer le chemin du fichier exécutable, pensez à utiliser GetModuleFileName à la place :

TCHAR buffer[MAX_PATH] = { 0 };
GetModuleFileName(NULL, buffer, MAX_PATH);

Extraction du chemin du répertoire

Pour obtenir le chemin du répertoire sans le nom du fichier, vous pouvez utiliser la fonction suivante :

#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";
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn