Я начинаю с нуля, и я немного смущен о том, как это сделать. Я пытаюсь использовать функции 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;
}
сначала вы должны Google свой вопрос и если вы получите какие-либо ошибки, то разместим ваш код и список ошибок в вашем вопросе. http://stackoverflow.com/q/230062/3184380 – Shell
Посмотрите: [Похожие вопросы] (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