linux c++ 遍历文件夹中的文件,获取中文文件名
时间: 2024-05-06 16:16:42 浏览: 240
linux c++ 获取目录下所有文件
遍历文件夹中的文件,可以使用 dirent.h 头文件中的函数 opendir、readdir 和 closedir。其中 opendir 函数用于打开目录,readdir 函数用于读取目录中的文件,closedir 函数用于关闭目录。获取中文文件名,可以使用 C++11 中提供的 std::wstring 类型来存储文件名,同时使用 std::wcout 输出中文文件名。
下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include <dirent.h>
int main()
{
std::wstring folder_path = L"/path/to/folder";
DIR *dir;
struct dirent *entry;
dir = opendir(folder_path.c_str());
if (dir == NULL)
{
std::cerr << "Error opening directory" << std::endl;
return 1;
}
while ((entry = readdir(dir)) != NULL)
{
std::wstring file_name = entry->d_name;
if (file_name != L"." && file_name != L"..")
{
std::wcout << file_name << std::endl;
}
}
closedir(dir);
return 0;
}
```
需要注意的是,使用 std::wstring 存储中文文件名时,需要确保源代码文件的编码为 UTF-8,并且在编译选项中添加 `-std=c++11 -finput-charset=UTF-8`。另外,在输出中文文件名时,也需要确保终端环境支持 UTF-8 编码。
阅读全文