如何获取目录和子目录中所有文件的列表(完整文件路径)

时间:2020-10-16 10:17:05

标签: c++

如何获取目录和子目录中所有文件的列表(完整文件路径),并在文件名是俄语和阿拉伯语的情况下显示 我在Google上进行了很多搜索,但是没有找到任何可以解决我问题的方法,我们将为您提供帮助

1 个答案:

答案 0 :(得分:2)

最好包括您到目前为止为解决问题所尝试的内容。这样,我们可以帮助您调试自己的代码,这对您非常有用。

但是,C ++ 17使通过目录迭代器的目录迭代非常容易。阅读有关目录迭代器here的更多信息,并查看以下代码:

#include <string>
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem; 

int main()
{
    std::string path = "/path/to/directory";
    for (const auto & entry : fs::directory_iterator(path))
        std::cout << entry.path() << std::endl;
}

现在问题的第二部分:您具有条目路径,您可以从中提取文件名。然后,假设您有两个词典,一个是俄语,另一个是阿拉伯语。如果您逐个字符地遍历文件名并每次检查它是在俄语词典中还是在阿拉伯语词典中,您就会明白!

您需要知道的是阿拉伯语,俄语,无论哪个字符具有Unicode代码点(What's unicode?);意味着有一个独特的价值。计算机可以使用0和1,但不能使用人类可读的字符(使用ASCII可以解决此特定问题)。如果您熟悉ASCII,则可以将Unicode视为更具包容性的字符编码标准。例如,请参见this页以获取阿拉伯字符编码。

PS:由于字典具有摊销的O(1)查找,因此对字典使用哈希表实现(而不是数组)。