SHFileOperation
- SHFileOperation
- 函数功能描述:文件操作,与 Shell 的动作相同.
- 函数原型:
- #include<shellapi.h>
- WINSHELLAPI int WINAPI SHFileOperation(LPSHFILEOPSTRUCT lpFileOp);
- 参数:
- typedef struct _SHFILEOPSTRUCT
- {
- HWND hwnd; //父窗口句柄
- UINT wFunc; //要执行的动作
- LPCTSTR pFrom; //源文件路径,可以是多个文件
- LPCTSTR pTo; //目标路径,可以是路径或文件名
- FILEOP_FLAGS fFlags; //标志,附加选项
- BOOL fAnyOperationsAborted; //是否可被中断
- LPVOID hNameMappings; //文件映射名字,可在其它 Shell 函数中使用
- LPCTSTR lpszProgressTitle; // 只在 FOF_SIMPLEPROGRESS 时,指定对话框的标题。
- } SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT;
- wFunc 可以为:
- /FO_MOVE 0x0001 移动文件
- FO_COPY 0x0002 复制文件
- FO_DELETE 0x0003 删除文件,只使用 pFrom
- FO_RENAME 0x0004 文件重命名
- fFlags可以为:
- FOF_MULTIDESTFILES 0x0001 //pTo 指定了多个目标文件,而不是单个目录
- FOF_CONFIRMMOUSE 0x0002
- FOF_SILENT 0x00044 // 不显示一个进度对话框
- FOF_RENAMEONCOLLISION 0x0008 // 碰到有抵触的名字时,自动分配前缀
- FOF_NOCONFIRMATION 0x0010 // 不对用户显示提示
- FOF_WANTMAPPINGHANDLE 0x0020 // 填充 hNameMappings 字段,必须使用 SHFreeNameMappings 释放
- FOF_ALLOWUNDO 0x0040 // 允许撤销
- FOF_FILESONLY 0x0080 // 使用 *.* 时, 只对文件操作
- FOF_SIMPLEPROGRESS 0x0100 // 简单进度条,意味者不显示文件名。
- FOF_NOCONFIRMMKDIR 0x0200 // 建新目录时不需要用户确定
- FOF_NOERRORUI 0x0400 // 不显示出错用户界面
- FOF_NOCOPYSECURITYATTRIBS 0x0800 // 不复制 NT 文件的安全属性
- FOF_NORECURSION 0x1000 // 不递归目录
- 返回值:
- 函数成功返回 0 ,失败返回非 0 。
- 例子:
- 1. 将 C:\Test.txt 拷贝到 D:\
- SHFILEOPSTRUCT lpsh;
- ZeroMemory(&lpsh,sizeof(lpsh));
- lpsh.hwnd= HWND_DESKTOP;
- lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
- lpsh.wFunc=FO_COPY; // FO_MOVE 则是移动
- lpsh.pFrom= "C:\Test.txt";
- lpsh.pTo = "D:\"
- if( 0 != SHFileOperation(&lpsh))
- {
- AfxMessageBox("复制文件出错,请检查");
- return ;
- }
- 2. 删除 D:\Test.txt
- SHFILEOPSTRUCT lpsh;
- ZeroMemory(&lpsh,sizeof(lpsh));
- lpsh.hwnd= HWND_DESKTOP;
- lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
- lpsh.wFunc=FO_DELETE;
- lpsh.pFrom= "D:\Test.txt";
- if( 0 != SHFileOperation(&lpsh))
- {
- AfxMessageBox("删除文件出错,请检查");
- return ;
- }
- 3.重命名
- SHFILEOPSTRUCT lpsh;
- ZeroMemory(&lpsh,sizeof(lpsh));
- lpsh.hwnd= HWND_DESKTOP;
- lpsh.fFlags=FOF_NOCONFIRMATION|FOF_SIMPLEPROGRESS ;
- lpsh.wFunc=FO_RENAME;
- lpsh.pFrom= "D:\Test.txt";
- lpsh.pTo = "D:\Test2.txt";
- if( 0 != SHFileOperation(&lpsh))
- {
- AfxMessageBox("重命名文件出错!");
- return ;
- }
- SHFILEOPSTRUCT Op;
- ZeroMemory(&Op, sizeof(Op));
- TCHAR ToBuf[MAX_PATH];
- TCHAR FromBuf[MAX_PATH];
- ZeroMemory(ToBuf, sizeof(ToBuf));
- ZeroMemory(FromBuf, sizeof(FromBuf));
- lstrcpy(FromBuf, strDeleteFile);
- Op.hwnd = NULL;
- Op.pFrom = FromBuf;
- Op.pTo = ToBuf;
- Op.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI;
- Op.fAnyOperationsAborted = FALSE;
- Op.hNameMappings = NULL;
- Op.lpszProgressTitle = NULL;
- Op.wFunc = FO_DELETE;
- SHFileOperation(&Op);
SHFileOperation相关推荐
- 使用Windows的SHFileOperation外壳函数实现文件操作
在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝.删除.移动等,该函数使用起来非常简单,它只有一个指向SHFI ...
- VC批量拷贝,移动,删除文件---SHFileOperation
SHFileOperation 函数功能描述:文件操作,与 Shell 的动作相同. 函数原型: #include<shellapi.h> WINSHELLAPI int WINAPI S ...
- SHFileOperation()函数移动,复制,删除文件\文件夹
(转载于:http://hi.baidu.com/%B4%E7%B2%DD%D0%C4_/blog/item/e3a8200a28f6ea3ab1351d38.html) //删除文件或者文件夹 bo ...
- SHFileOperation使用
总结一下SHFileOperation的用法,希望对大家有用 //删除文件或者文件夹 bool DeleteFile(char * lpszPath) { SHFILEOPSTRUCT FileOp= ...
- 文件/文件夹操作函数封装(使用SHFileOperation和SHCreateDirectory函数实现)
最近工作中涉及到很多文件和文件夹的处理,包括删除.检测是否存在.移动.复制等,用过CopyFile.MoveFile等函数,也使用过SHFIleOperation()函数,觉得后者比较好用些,参考了C ...
- 对SHFileOperation函数的一点研究
SHFileOperation是一种外壳函数,用它可以实现各种文件操作,如文件的拷贝.删除.移动等,当然,它也可以对文件夹进行操作.它操作文件夹有一个亮点就是,当删除某个文件夹时可以删除非空文件夹,而 ...
- SHFileOperation函数
在Windows的shellapi文件中定义了一个名为SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝.删除.移动等,该函数使用起来非常简单,它只有一个指向SHFI ...
- Windows文件操作的直接函数调用
1.调用文件属性对话框 procedure OpenWindowsFilePropertys(FileName: string); var sei: TSHELLEXECUTEINFO; begin ...
- C++学习之:复制和粘贴文件/文件夹
从剪贴板上获得要复制/剪贴的文件路径之后,如何完成文件/文件夹的粘贴呢.下面列出了两个函数用来完成这些功能 //复制的粘贴 DWORD VrvCopyFile( LPCWSTR lpSrc, LPCW ...
- 多种数据DELPHI备份方式(源码)
Access: //数据备份(创建一个新的备份文件). procedure TMainForm.BitBtn1Click(Sender: TObject); var F:TShFileOpSt ...
最新文章
- ubuntu 安装qt5
- 【运筹学】线性规划数学模型 ( 知识点回顾 | 可行解 | 最优解 | 阶梯型矩阵 | 阶梯型矩阵向量 | 基 | 基向量 | 基变量 | 非基变量 )
- import tensorflow 报错 ImportError: DLL load failed: 找不到指定的模块。
- C语言试题九之s=(ln(1)+ln(2)+ln(3)+…+ln(m))^0.5,s作为函数值返回
- php date( ymd_PHP DATE()
- java与javac版本不一致问题
- 11.history命令历史
- ❤️《大前端—模块化》
- Android Espresso
- Scala的空值删除和空值填充
- 优科无线并购Wi-Fi入网软件提供商Cloudpath Networks
- MATLAB高斯迭代算法,matlab实现高斯赛德尔迭代法解方程组
- 《深度工作》学习总结
- 使用C语言构造一个简单计算器
- 天涯“大鹏金翅明王”语录
- Android集成华为、小米、OPPO、VIVO、极光推送
- c语言输出成绩与排名,C语言算成绩 要求输完两个分数后 同时输出两个分数换算出来的成绩...
- 宠物狗网页制作作业 保护动物网页设计模板 简单学生网页设计 静态HTML CSS网站制作成品
- 如何实现RS485串口通讯采集模拟量
- Mysql字段类型转换