我需要在C ++中的目录中生成一个文件名容器,并且它必须跨平台兼容。有人建议使用WIN32_FIND_DATA
数据结构。这是最好的选择吗?如果是的话,我将如何实施呢?
用户不会输入文件名,而是C ++函数将自动搜索目录并创建文件名容器。我也不知道如何读取这样的文件名。
我也非常关注标准,因此<dirent.h>
也不是理想的解决方案,因为它不是ISO C标准,即使它是C POSIX库中的标头。
最佳答案
我猜WIN32_FIND_DATA并不是跨平台的最佳选择,但是可能有一些库可以帮助在Linux上提供它。
考虑使用boost filesystem将文件转储到std::vector
中。
如下所示(改编自here):
void show_files(const path & directory)
{
if(!exists(directory)) return;
directory_iterator end ;
for( directory_iterator iter(directory) ; iter != end ; ++iter )
if (is_directory(*iter)) continue; // skip directories
cout << "File: " << iter->native_file_string() << "\n" ;
}
}
关于c++ - 创建一个包含目录中文件名的C++容器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3113102/