我正在编写一个代码来读取位于我主目录中的“resultsNEW”子目录中的所有文件,将它们的名字存储在一个向量中并将它们用于其他东西 我正在使用opendir和readdir来读取文件的名称,当然它包括“。”和“......”......现在,问题是我试图消除它们,但出于某种原因我不能这样做。 这是我的代码
int RFiles(vector<string>& f)
{
//path of the directory containing the files
string path = "./resultsNEW";
DIR* dir;
dirent* file;
dir = opendir(path.c_str());
if (dir)
{
while (file = readdir(dir))
{
if (file->d_name == "." || file->d_name == "..") // HERE IS THE PART WHICH IS NOT WORKING
{
cout << "File not good!" << endl;
}
else
{
cout << "Reading file:" << file->d_name << endl;
string temp = path + "/" + file->d_name;
f.push_back(temp);
}
}
return(0);
}
else
{
return(1);
}
closedir(dir);
}
我添加了条件
if (file->d_name=="." || file->d_name=="..")
消除。和..,但他们被包括在内......输出是
Reading file:Output_M 0.1000E+12_nu 3.00_tau0.400_Reff0.3000E+04.txt
Reading file:Output_M 0.1000E+13_nu 22.00_tau0.200_Reff 0.1000E+05.txt
Reading file:Output_M 0.1000E+11_nu 1.00_tau0.500_Reff 0.1000E+04.txt
Reading file:..
Reading file:.
我确信这里有一些显而易见的东西,但我真的无法弄清楚是什么......