Readdir排除目录中的某些文件
readdir excludes some files in a directory
我有一段相当简单的代码,用于在c++中获取目录中的文件列表。令人费解的是,目录中的135个文件中只有68个最终存储在矢量文件名中。发生了什么?
DIR* pDIR = opendir(directoryName.c_str());
struct dirent* entry = nullptr;
vector<string> fileNames;
while(readdir(pDIR)) {
entry = readdir(pDIR);
if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0 )
fileNames.push_back(entry->d_name);
}
closedir(pDIR);
每次迭代执行readdir 2次。因此,您将跳过一半的文件。
解决方法很简单,只需调用一次:
DIR* pDIR = opendir(directoryName.c_str());
struct dirent* entry = nullptr;
vector<string> fileNames;
while(entry = readdir(pDIR)) {
if (strcmp(entry->d_name, ".") != 0 && strcmp(entry->d_name, "..") != 0 )
fileNames.push_back(entry->d_name);
}
closedir(pDIR);
相关文章:
- 如何从整个磁盘中排除要装载的一个文件
- 可视C++ - 从链接器>输入>其他依赖项中排除文件
- 我想使用 CMake 生成和编译 Visual Studio projet,我需要从构建中排除单元测试文件。有没有办法做到这一点?
- 从 Eclipse 索引中排除构建中包含的文件
- 从 Visual Studio 2017 中生成的依赖项中排除头文件
- 从VSCODE C 调试步骤中排除文件
- CMake 根据配置从生成中排除文件
- 修改 gettext .pot 文件输出以排除空字符串或仅包含空格的字符串
- Eclipse C 在构建配置中排除头文件
- 从文件夹中排除 cpp 而不删除
- 从eclipse自动生成的依赖项中排除文件夹
- 如何取回从 Eclipse CDT 中的构建配置中排除的文件
- 是否应从头文件声明中排除辅助函数?(C++)
- 如何排除 cppclean 运行的文件
- 使用生成文件在编译中排除源文件
- Visual Studio 2010-排除文件类型
- Eclipse c++如何从构建中重新包含被排除的文件
- Readdir排除目录中的某些文件
- 如何从XML签名文件中排除签名
- 从构建中排除文件(自定义和临时)