C语言,如何复制文件?

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:32:52
我要做一个复制文件的小程序,我把产生的.exe文件拉进notepad(记事本),怎么可以看到我源文件里面从哪个文件拷到哪个文件的?
大家看参考我上传的图片说明,真的看到我的源文件的?
怎样才不让人家知道我复制了什么文件呢?

http://hi.baidu.com/qinglilong/album/item/3793ca1089d9520d213f2ee3.html

#include <stdio.h>
#include <conio.h>

main()
{
system("copy c:\\vbgood.txt d:\\");
getchar();
}
如果vbgood.txt里面内容是空的,是复制不到的,大家要注意。不过我要复制的文件并不是空的,而是我不想人家知道我拷贝哪个文件而已。

调用系统函数是以字符串方式保存的,而非二进制。(因为dos\linux命令行下二进制编码无意义)
所以system()一定不满足你的要求。

可以使用c的IO函数达到你想要的目的
以下是简要说明,不考虑出错等问题:
所有IO函数包含在stdio.h中(linuxC是,turboc应该也是吧,忘了)

1、定义源文件和目标文件指针FILE *fp_source,*fp_target

2、声明一个程序内数据存放区如char buffer[100],或调用malloc函数

3、用fp_source = fopen()打开源文件文件

4、用fp_target = fopen()打开目标文件

5、
while(feof(fp_source) == 0)//利用循环复制直到源文件尾
{用fread()将源文件内容读入程序buffer
用fwrite()将buffer内容写入目标文件
}

6、别忘了close()关闭源\目标文件

7、各函数使用方法请自行查询,不赘述。

没有写全源码,但希望这条思路对你有帮助。

这是因为你复制文件时调用的DOS命令,可以通过编程复制文件(源程序如下)
#include <stdio.h>

int main()
{
char *sFile="c:\\vbgood.txt";
char *dFile="d:\\vbgood.txt";
char ch[4];
FILE *sfp,*dfp;

if ((sfp=fopen(sFile,"rb"))==NULL)
return 0;
if ((dfp=fopen(dFile,"wb