MoveFileWithProgress 功能与 MoveFileEx 是相同的,只不过 MoveFileWithProgress 允许你提供一个接收移动进度消息的回调函数。
MoveFile 函数移动已存在的文件或文件夹,包括它的子文件和文件夹。
只能在同一目录或volume(卷)下移动
MoveFileEx or MoveFileWithProgress 指定如何去移动文件。
可以在不同volume下移动,但必须指定MOVEFILE_COPY_ALLOWED,但有时移动不成功,会出现error(5)的错误,这跟系统的读取权限有关。
MoveFileTransacted 允许执行事务处理的操作。
#define _WIN32_WINNT 0x0500 // 不加这个不同通过编译 #include <windows.h> #include <stdio.h>
DWORD CALLBACK CopyProgress( LARGE_INTEGER TotalFileSize, // total file size, in bytes LARGE_INTEGER TotalBytesTransferred, // total number of bytes transferred LARGE_INTEGER StreamSize, // total number of bytes for this stream LARGE_INTEGER StreamBytesTransferred, // total number of bytes transferred for this stream DWORD dwStreamNumber, // the current stream DWORD dwCallbackReason, // reason for callback HANDLE hSourceFile, // handle to the source file HANDLE hDestinationFile, // handle to the destination file LPVOID lpData // passed by CopyFileEx ) { static int nRecord = 0; nRecord++; printf("回调次数:%d 已传输:%08X:%08X 文件大小:%08X:%08X ", nRecord, TotalBytesTransferred.HighPart, TotalBytesTransferred.LowPart, TotalFileSize.HighPart, TotalFileSize.LowPart); return PROGRESS_CONTINUE; }
int main(int argc, char* argv[]) { if(argc!=3) { printf("用法:命令 源文件 目标文件"); return 0; }
if(!CopyFileEx(argv[1],argv[2],(LPPROGRESS_ROUTINE)CopyProgress,NULL,FALSE,COPY_FILE_FAIL_IF_EXISTS)) { printf("CopyFileEx() failed."); return 0; } return 0; }
如今我们还有在做个人网站吗?随着自媒体和短视频的发展和兴起,包括我们很多WEB2.0产品的延续,当然也包括个人建站市场的低迷和用户关注的不同,有些个人已经不在做网站。但是,由于我们有些朋友出于网站的爱好或者说是有些项目还是基于PC端网站的,还是有网友抱有信心的,比如我们看到有一些老牌个人网站依旧在运行,且还有新网站的出现。今天在这篇文章中谈谈有网友问关于个人网站备案的问题。这个也是前几天有他在选择...
金山云618年中促销活动正在进行中!金山云针对企业级新用户优惠力度比普通个人用户优惠力度要大,所以我们也是推荐企业新用户身份购买金山云企业级云服务器,尽量购买3年配置的,而不是限时秒杀活动中1年的机型。企业级用户购买金山云服务器推荐企业专区:云服务器N3 2核4G云服务器,1-5M带宽,827.64元/3年,性价比高,性能稳定!点击进入:金山云618年中促销活动目前,金山云基础型E1云服务器2核4...
ReadyDedis是一家2018年成立的国外VPS商家,由印度人开设,主要提供VPS和独立服务器租用等,可选数据中心包括美国洛杉矶、西雅图、亚特兰大、纽约、拉斯维加斯、杰克逊维尔、印度和德国等。目前,商家针对全部VPS主机提供新年5折优惠码,优惠后最低套餐1GB内存每月仅需2美元起,所有VPS均为1Gbps端口不限流量方式。下面列出几款主机配置信息。CPU:1core内存:1GB硬盘:25GB ...