在c中访问不同的驱动器

Accessing a different drive in c

我想扫描目录,检查 JPEG 文件(即前几个字节的组合)并将它们复制到另一个驱动器。我成功地测试了该程序并筛选了文档。但是,我无法访问整个目录(例如,我不小心删除了 D:/ 中的 SD 卡)。

以下是我尝试访问它的方式:

// remember the path from the command line
char *path = argv[1];

// open the path (preferably "D:\" - which is my SD-Card ;))
FILE *inptr = fopen(path, "r");
if (inptr == NULL)
{
    fprintf(stderr, "inputfile could not be read\n");
    return 1;
}

输出是 "inputfile could not be read" - 这就是为什么我非常确信错误就在那里。我需要以不同方式处理目录吗?例如。通过使用指向驱动器第一位的指针?

我是初学者,所以请大家笑的时候要温柔。 ;)

非常感谢! 马塞尔

'fopen()'无法打开整个目录或驱动器,只能打开特定路径。但是,有一些方法可以完成列出目录中所有文件的任务。 This answer 已经包含一些相关信息。

由于您已经可以打开文件,因此您可以修改此处显示的循环来执行该操作。

while ((dir = readdir(d)) != NULL)
{
    printf("%s\n", dir->d_name);
    if (/*Check whether file has the .jpg extension or another test*/)
    {
        // perform your copy operation on the file
    }
}