【发布时间】:2020-12-11 09:25:49
【问题描述】:
我使用以下代码列出驱动器的文件。它有效,但速度很慢。 如何加快速度?
void l(string& foldername, vector<string>& output) {
DIR* dir;
struct dirent* DirEntry;
if ((dir = opendir(foldername.c_str())) != NULL)
{
while ((DirEntry = readdir(dir)) != NULL)
{
if (strcmp(DirEntry->d_name, ".") && strcmp(DirEntry->d_name, ".."))
{
string subfolder(foldername);
subfolder += "\\";
subfolder += DirEntry->d_name;
DIR* subdir;
if ((subdir = opendir(subfolder.c_str())) != NULL)
{
l(subfolder, output);
closedir(subdir);
}
else
{
string fullname(foldername);
fullname = fullname + '\\' + DirEntry->d_name;
output.push_back(fullname);
}
}
}
closedir(dir);
}
else
{
}
}
【问题讨论】:
标签: c++