我正在尝试穿越目录并检查重复文件。
void findDuplicates(){
char *dot[] = {".", 0};
FTS *ftsp, *temp_ftsp;
FTSENT *entry, *temp_entry;
int fts_options = FTS_LOGICAL;
ftsp = fts_open(dot, fts_options, NULL);
while((entry = fts_read(ftsp)) != NULL){
temp_ftsp = ftsp;
while((temp_entry = fts_read(temp_ftsp)) != NULL){
compareEntries(temp_ftsp, ftsp);
}
}
}
但它不会像我想要的那样穿越目录。第二段循环之后,
entry = fts_read(ftsp)
返回null。是否可以轻松解决此问题,或者我应该使用其他东西?
您需要重新结构您的方法。内部while
正在用尽文件列表,因此,一次外部会在成功后失败。
更好的方法可能是存储文件,因此您可以将每个新传入文件与存储的文件进行比较,或使用递归方法。两者都需要内存。