使用的API
我们使用DeleteFile
, CopyFile
, MoveFile
进行测试
API | 简介 |
---|---|
DeleteFile | 删除文件 |
CopyFile | 拷贝文件 |
MoveFile | 移动文件或重命名文件 |
代码
#include <Windows.h>
#include <stdio.h>
int main(int argc, PTCHAR argv[]) {
if (0 == lstrcmp("-d", argv[1]) && argc == 3) {
// 删除
if (!DeleteFile(argv[2])) {
printf("DeleteFile failed\n");
} else {
printf("File deleted\n");
}
}
else if (0 == lstrcmp("-c", argv[1]) && argc == 4) {
// -c 拷贝
if (!CopyFile(argv[2], argv[3], TRUE)) { // TRUE表示如果新复制的文件已经存在的话复制失败
if (GetLastError() == 0x50) {
// 目标文件已经存在了
printf(("文件%s已经存在,是否覆盖? y/n:"), argv[3]);
if ('y' == getchar()) {
// 强行覆盖掉
if (!CopyFile(argv[2], argv[3], FALSE)) { // FALSE表示不管目标文件存不存在,直接覆盖掉
printf("CopyFile failed %d\n", GetLastError());
} else {
printf("File copied\n");
return 0;
}
} else {
printf("CopyFile aborted\n");
return 0;
}
}
} else {
printf("File copied\n");
}
}
else if ((0 == lstrcmp("-m", argv[1])) && argc == 4) {
// -m 移动
if (!MoveFile(argv[2], argv[3])) {
printf("移动失败: %d\n", GetLastError());
}
else {
printf("移动成功\n");
}
}
else {
printf("usage: mu [-d|-m|-c] [filename] <filename>");
}
return 0;
}