Windows开发列出指定目录下的文件列表
时间: 2024-04-24 16:25:51 浏览: 177
在 Windows 开发中,您可以使用 FindFirstFile 和 FindNextFile 函数列出指定目录下的文件列表。下面是一个示例代码:
```cpp
#include <windows.h>
#include <iostream>
#include <string>
void ListFilesInDirectory(const std::wstring& directory)
{
std::wstring searchPath = directory + L"\\*.*";
WIN32_FIND_DATA findData;
HANDLE hFind = FindFirstFile(searchPath.c_str(), &findData);
if (hFind != INVALID_HANDLE_VALUE)
{
do
{
if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
// 跳过目录
continue;
}
std::wstring fileName = findData.cFileName;
std::wcout << fileName << std::endl;
} while (FindNextFile(hFind, &findData));
FindClose(hFind);
}
}
int main()
{
// 指定目录路径
std::wstring directoryPath = L"C:\\Path\\To\\Directory";
ListFilesInDirectory(directoryPath);
return 0;
}
```
在上面的代码中,我们定义了一个名为 `ListFilesInDirectory` 的函数,它接受一个目录路径作为参数。在该函数中,我们首先构建一个搜索路径,然后使用 `FindFirstFile` 函数打开搜索路径,并通过循环使用 `FindNextFile` 函数遍历目录中的文件。
在循环中,我们首先检查文件属性,如果是目录,则跳过。然后,我们获取文件名并将其输出到标准输出流 (`std::wcout`)。
在 `main` 函数中,我们指定要列出文件的目录路径,并调用 `ListFilesInDirectory` 函数进行列出。
请注意,上述代码仅列出了目录中的文件,如果需要递归列出子目录中的文件,请进行相应的递归操作。另外,为了正确处理 Unicode 路径,请使用 `std::wstring` 类型,并确保在编译时启用了 Unicode 字符集选项。