VC C++ 文件删除、复制、移动、重命名 Windows API

原型:
BOOL CopyFile{
LPCTSTR lpExistingFileName, //源文件名
LPCTSTR lpNewFileName, //目标文件名
BOOL bFailIfExists; 
};


参数 类型及说明: 
lpExistingFileName String,源文件名 
lpNewFileName String,目标文件名 
bFailIfExists Long,如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件被改写 

返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 

MoveFile

函数功能

移动一个存在的文件或者目录(包括子目录).  重命名和移动是同一个函数

原型
BOOL MoveFile(
LPCTSTR lpExistingFileName, // file name
LPCTSTR lpNewFileName // new file name
);


参数说明
lpExistingFileName 一个存在的文件或者文件夹字符串指针
lpNewFileName 一个还没存在的文件或者文件夹的字符串指针
返回值
如果成功调用 返回非0
失败 返回0

DeleteFile

功能说明
删除一个存在的文件.

BOOL DeleteFile(
LPCTSTR lpFileName // 文件名指针
);

返回值
如果成功返回一个非0值
失败返回0 可以用GetLastError函数得到错误信息.

#include <windows.h>
#include <stdio.h>

/* ************************************
* int main( int argc, PCHAR argv[] )
* 功能 应用程序主函数,根据输入参数
* 删除、复制、重命名文件
*
* 参数 删除文件:
* -d 文件路径
* 将文件路径1的文件复制到文件路径2:
* -c 文件路径1 文件路径2
* 将文件路径1的文件移动、重命名为文件路径2的文件
* -m 文件路径1 文件路径2
*************************************
*/
int main(int argc, PCHAR argv[])
{


//-d参数,删除文件。
if(0==lstrcmp("-d",argv[1]) && argc==3)
{
if(!DeleteFile(argv[2]))
{
printf("删除文件错误:%x",GetLastError());
}
else
{
printf("删除成功!");
}
}
//-c参数,复制文件。
//如果文件存在,询问用户是否覆盖
else if(0==lstrcmp("-c",argv[1]) && argc==4)
{
//复制,不覆盖已经存在的文件
if(!CopyFile(argv[2],argv[3],TRUE))
{
//LastError == 0x50,文件存在。
if(GetLastError() == 0x50)
{
printf("文件%s已经存在,是否覆盖?y/n: ",argv[3]);
if('y'==getchar())
{
//复制,覆盖已经存在的文件。
if(!CopyFile(argv[2],argv[3],FALSE))
{
printf("复制文件错误,%d",GetLastError());
}
else
{
printf("复制成功!");
}
}
else
{
return 0;
}
}
}
else
{
printf("复制成功!");
}
}
//-m参数,移动、重命名文件。
else if(0==lstrcmp("-m",argv[1]) && argc==4)
{
if(!MoveFile(argv[2],argv[3]))
{
printf("移动文件错误:%d",GetLastError());
}
else
{
printf("移动文件成功!");
}
}
else
{
printf("参数错误!");
}

}

VC C++ 文件删除、复制、移动、重命名 Windows API



你可能感兴趣的:(windows)