【发布时间】:2016-05-10 20:45:59
【问题描述】:
使用 C++(在 Visual Studio 2013 中),我如何编写一段代码来搜索特定文件的系统路径并返回文件的完整路径?我只有文件的基本名称。这里所说的系统路径,是指windows中的路径环境变量(你可以通过在命令窗口中输入“set path”来查看路径)。
例如。我喜欢有类似的东西,
file_name = "my_test.xml"
path = find_file(fine_name);
提前致谢
我想出了答案。下面是一段完全符合我要求的代码:
#include <iostream>
#include <Shlwapi.h>
wchar_t* get_file_full_path(const wchar_t file_name[]){
wchar_t buf[MAX_PATH];
wcscpy_s(buf, wcslen(file_name) + 1, file_name);
if (PathFindOnPath(buf, NULL)) {
std::wcout << file_name << " found." << std::endl;
std::wcout << buf << std::endl;
}
else {
std::wcout << "Could not find the file " << file_name << " on the system path.";
}
return buf;
}
【问题讨论】:
-
您是在提到PATH 变量吗?扫描它似乎很容易。或者您想在深层文件层次结构中找到一个文件,只知道它的基本名称?
-
@MrAliB 什么是'系统路径'?!
-
您可以遍历系统路径(PATH 变量)中的目录并检查每个目录。或者在命令解释器中,您可以使用
where命令。我看不到问题?由于不清楚而投票结束。