方法1)利用C语言的二进制读写函数
自己用fopen打开源文件和目标文件,然后用循环读写实现复制
方法2)利用 *** 作系统的文件复制函数闷纳掘
例如Windows就有如下API函数可以复制文件
BOOL CopyFile(
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists // operation if file exists
)
第一个参数是用来存放当前要处理文件的路径。
第二个参数是用来存放用户指定的新路径。
第三个参数它是用来判断用户指定的新路径是否已经存在要存放的路径,如果为TRUE,则新路径中已经存在该文件了,该函数调用失败,否则就调用成功。
方法3:茄腔C语言调用 *** 作系统的copy命令
首先#蚂核include<stdlib.h>
然后 程序中 调用 system(“这里写 copy的完整命令”);
BOOLCopyFile(LPCTSTR
lpExistingFileName,LPCTSTR
lpNewFileName,BOOL
bFailIfExists
)
说明
复制文件。与vb的搭老filecopy命令相似
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数
类型及说明知晌升
lpExistingFileName
String,源文件名
lpNewFileName
String,目标文件名
bFailIfExists
Long,如果设为TRUE(非零),那么一旦目标文件已谨御经存在,则函数调用会失败。否则目标文件被改写
有两种方法可以使用
1 调用函数system(),可以执行系统shell命令,从而实现复制文件功能。
比如在windows下可以
system("copy src dst /Y")
其中src是源文件,dst为目标文件,/Y开关表示不需要交互,强行复制。
如果在linux下,则可颤搭以使用
system("cp src dst")
其中src 和dst与之前含义相同冲判。
2 可以自行写函数进行复制
利用C语言的文件 *** 作函数,打开文件,读取源文件写入目标文件,最终关闭即可。
参考代码如下
#include <stdio.h>void file_copy(char *src, char *dst)
{
FILE *fp1, *fp2
int c
fp1 = fopen(src, "rb")
fp2 = fopen(dst, "wb")//打开文件
if(fp1 == NULL || fp2 == NULL)//错误处理
茄判拿 {
printf("open file failed\n")
if(fp1) fclose(fp1)
if(fp2) fclose(fp2)
}
while((c = fgetc(fp1)) != EOF)//读字节
fputc(c, fp2) //写数据
fclose(fp1)//关闭文件
fclose(fp2)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)