首页 >后端开发 >C++ >C语言中如何获取当前目录?

C语言中如何获取当前目录?

Linda Hamilton
Linda Hamilton原创
2024-11-09 03:32:02306浏览

How to Get the Current Directory in C  ?

检索当前目录

获取当前目录是编程中的常见任务。例如,假设您要在运行可执行文件的同一目录中创建一个文件。为此,您需要获取当前目录的路径。

但是,当使用 GetCurrentDirectory() 函数时,如下所示:

LPTSTR NPath = NULL;
DWORD a = GetCurrentDirectory(MAX_PATH, NPath);
HANDLE hNewFile = CreateFile(NPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

您可能会遇到异常。您应该使用 GetModuleFileName() 来检索可执行路径,而不是 GetCurrentDirectory()。

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

要获取不带文件名的目录路径,您可以使用以下 C 函数:

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

以上是C语言中如何获取当前目录?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn