我知道复制文件,我认为这是在C有没有办法直接从一个文件夹复制到另一个文件而无需打开
复制文件#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch, source_file[20], target_file[20];
FILE *source, *target;
printf("Enter name of file to copy\n");
gets(source_file);
source = fopen(source_file, "r");
if(source == NULL)
{
printf("Press any key to exit...\n");
exit(EXIT_FAILURE);
}
printf("Enter name of target file\n");
gets(target_file);
target = fopen(target_file, "w");
if(target == NULL)
{
fclose(source);
printf("Press any key to exit...\n");
exit(EXIT_FAILURE);
}
while((ch = fgetc(source)) != EOF)
fputc(ch, target);
printf("File copied successfully.\n");
fclose(source);
fclose(target);
return 0;
但是这样的非常标准的方式这种方式打开文件并逐行复制。我想要复制的文件很多,很多。这种方式将非常非常长。有没有一种方法可以实现我直接复制这些文件的目标。我知道终端或命令提示符下比C语言完全不同的东西,但一个简单的
cp sourcefile.txt destinationfile.txt
可以做的伎俩。
在C中是否有任何这样的命令或技巧,我可以使用。因为我写一个健壮的程序应该在Linux和Windows的工作,我不能用
system("cp sourcefile.txt destinationfile.txt");
命令。
你真的想创建一个副本吗?或者你最终只是移动文件,也就是在复制后删除源文件? – alk
@alk不,我想复制和粘贴,而不是剪切和粘贴。 – ITguy
文件复制的任何实现都必须打开该文件并使用系统调用复制字节。 –