gpt4 book ai didi

c - 此功能在某些目录中无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:02 24 4
gpt4 key购买 nike

这个函数应该显示目录中的文件列表,但是,它仅适用于 C:\Users\"name"\Desktop在其他目录中显示(目录)的所有名称我尝试过其他方法,但只有这个有效(不知何故)

# include <stdlib.h>
# include <dirent.h>
# include <sys/types.h>
# include <stdio.h>
int list(){
char s[50];
struct dirent *entry;
printf("Specify directory for list of files\n");
scanf("%s", &s);
DIR *dir = opendir(s);
FILE* ff;
if (dir){
printf("\n\n******\n\n");
while ((entry = readdir(dir)) != NULL) {
ff = (fopen(entry->d_name, "r"));

if (ff != NULL){
printf("%s\n",entry->d_name);
fclose(ff);
}
else if (ff == NULL) {
printf("%s(directory)\n",entry->d_name);
}

}
printf("\n******\n");
closedir(dir);
return 1;
}

最佳答案

如果您检查 entry->d_name 的内容,您会发现它只包含文件名而不是完整路径。因此,当您尝试打开该文件时,除非该文件存在于当前目录中,否则它无法打开。您需要构建完整路径并使用它来打开文件。

char fullname[1024];
strcpy(fullname,s);
strcat(fullname,"\\");
strcat(fullname,entry->d_name);
ff = fopen(fullname, "r");

关于c - 此功能在某些目录中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53813815/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com