C++获取目录中文件的完整路径
C++ get full path to file in directory
我有一个程序可以将用户的壁纸设置为一个文件。我需要获得图像文件的完整路径
这是我的代码
#include <windows.h>
int main()
{
FreeConsole();
const wchar_t *filenm = L"hay.jpg"; //Get path to hay.jpg
bool isWallSet = SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0,
(void*)filenm, SPIF_UPDATEINIFILE);
return 0;
}
假设有问题的文件在您当前的工作目录中,GetFullPathName
听起来是个好主意。它获取一个文件名,并通过在当前工作目录前加上前缀将其转换为完整路径。
请仔细注意文档中的警告:您无法在多线程程序中安全地使用此API,因为当前工作目录被保存为进程全局变量,无法安全访问。
还要注意,无论文件是否存在于工作目录中,API都会返回一个路径;它只需要获取您给它的文件名,并将当前工作目录作为前缀。
#include <windows.h>
int main()
{
char filename[] = "test.txt";
char fullFilename[MAX_PATH];
GetFullPathName(filename, MAX_PATH, fullFilename, nullptr);
MessageBox(NULL, fullFilename, "DEBUG", MB_OK);
}
如果使用Viual Studio 2015,则可以为此使用新的文件系统库。
#include <filesystem>
using filesystem = std::experimental::filesystem::v1;
...
const wchar_t *filename = filesystem::canonical(L"hay.jpg").c_str();
...
相关文章:
- 如何将更多文件夹添加到c++include路径
- 从函数角度看ID到文件路径的内部与外部映射
- 在C++中设置基于操作系统的文件路径
- C++17 文件系统::remove_all 带有通配符路径
- 从 C 中的变量获取文件的路径,C++
- 将共享库的搜索路径更改为生成文件中提供的 rpath
- 修改生成文件以简化框架 #include 路径
- 将Visual Studio Code路径设置为.clang_format文件
- Windows 非 ASCII 文件路径
- 非 ASCII 文件路径窗口
- C++和带有国家符号的文件路径(也许用 UTF8 编码)
- 获取 H5::D ataSet 的hid_t和文件中的路径以使用 H5OCopy
- 在特定 Unicode 路径中创建文件
- 如何让用户在 tinyxml2 中输入 XML 文件的路径
- 如何将COM .tlb文件导入具有相对路径C++文件中?
- C++ 路径文件存在限制为 260 个字符
- QT-在pro中指定DLL路径.文件
- 路径文件存在导致链接器错误 2028/2019
- 选择QTableWidgetItem qt的路径文件
- 如何有一个正确的路径文件读取它到stringstream