在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
}
}
我想扫描目录,检查 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
}
}