我是C初學者,對於如何執行此操作我有點困惑。我正在嘗試readdir
和strcmp
的功能,但它引發了很多錯誤。如何檢查文件夾中是否存在文件C
#include <stdio.h>
#include <sys/types.h>
#include <string.h>
#include <dirent.h>
int main(int argc, char *argv[])
{
DIR *dirp;
struct dirent *direntp;
dirp = opendir(argv[1]);
if (dirp == NULL)
{
printf("File could not be open\n");
return -1;
}
int i = 0;
while((direntp[i]=readdir(dirp)) != NULL)
{
if(strcmp(direntp[i], argv[2]) == 0)
{
printf("The file %d is in directory %s my friend!", argv[2], dirp);
}
i++;
}
closedir(dirp);
return 0;
}
首先你必須谷歌你的問題,如果你得到任何錯誤,然後發佈您的代碼和錯誤列表在你的問題。 http://stackoverflow.com/q/230062/3184380 – Shell
看看:[Similar Question](http://stackoverflow.com/questions/230062/whats-the-best-way-to-check-if -a-file-exists-in -c-cross-platform) – HvS
另外,你的目錄內容迭代器很糟糕。在你的情況下,你還應該檢查'direntp [i]'是否實際上是一個文件'if(direntp [i] - > d_type == DT_REG){}'。正如我前一段時間所建議的[這裏](http://stackoverflow.com/a/17683417/1150918)。 – Kamiccolo