в одном из моих упражнений Мне нужно открыть папку благодаря C. Я делаю это с помощью библиотеки dirent, после чего я успеваю отобразить на экране имя каждого файла в папке. Но теперь я хочу открывать каждый раз, когда текущий файл, который был напечатан на экране. Поэтому я делаю это с fopen, но каждый раз, когда мой fopen возвращает мне NULL, что я могу сделать, чтобы каждый раз открывать текущий файл. Спасибо!Открыть двоичный файл
Вот мой код:
void OpenDirectory(char *Folder, char *Virus){
DIR * dir = NULL;
struct dirent* CurrentFile = NULL;
dir = opendir(Folder);
if (dir == NULL){
perror("");
}
else
{
while ((CurrentFile = readdir(dir))!= NULL)
{
if (!strcmp(CurrentFile->d_name, ".") || !strcmp(CurrentFile->d_name, ".."))
{
// Don't do anything
}
else
{
printf("Current file is : %s\n", CurrentFile->d_name);
Myfile(CurrentFile->d_name);
}
}
}
}
void Myfile(FILE* File1){
File1 = fopen(File1, "rb");
printf("File is : %s", File1);
if (File1 == NULL)
{
printf("The file source doesn't exist !\n");
}
else
{
printf("Welcome");
}
}
Показать распечатку, т.е. какая спецификация файла распечатана 'printf («Файл:% s», File1); ». Очевидно, что для работы fopen() это должно быть допустимым именем AND PATH. –
Как я могу это сделать, потому что папка, которая содержит весь файл, находится не в том же каталоге моей программы .c –
Вы должны добавить имя файла в спецификацию папки, содержащей его (strcat). –