VC批量拷贝,移动,删除文件---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 //Not used.
- 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.pFrom和pTo最好以\0\0结尾(把存放路径的字符串初始化为0),不然有可能会出错
- 2.SHFileOperation能操作网络上的文件 如果你想将本地文件复制到192.168.1.99 那么只要在192.168.1.99上共享123目录 然后将pTo设置为\\192.168.1.99\123 就可以了 但不要设置为\\192.168.1.99
- 例子:
- 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);
VC批量拷贝,移动,删除文件---SHFileOperation相关推荐
- VC++6.0如何删除文件
左面workspace中选择FileView(VC界面中左侧部分共有三个选项卡:ClassView.ResourceView和FileView) 里面的文件删掉,然后再工程中其他地方如果头文件包含了你 ...
- 云服务器怎么拷贝和删除文件,怎样给云服务器拷贝文件
怎样给云服务器拷贝文件 内容精选 换一换 本章节主要介绍云硬盘.弹性文件服务.对象存储服务等存储服务,让您更好的了解这些存储服务. 云服务器备份:云服务器备份可以对普通服务器进行整机备份或部分磁盘备份 ...
- cmd之拷贝、删除文件夹
创建目录: md Ring,mkdir Ring mkdir aaa\bbb\ccc 删除: rmdir 只能删空目录 rd 用来删目录,del用来删文件. rd Ring /S/Q 删除整个目录 ...
- linux拷贝文件夹怎么删除,linux文件及文件夹拷贝移动删除
linux文件及文件夹拷贝移动删除 文件拷贝 文件夹拷贝 文件拷贝并重命名 文件夹拷贝并重命名 文件移动 文件夹移动 文件移动并重命名 文件夹移动并重命名 文件删除 文件夹删除 文件拷贝 cp tes ...
- Linux使用shell脚本批量拷贝文件
在日常工作中我们经常会碰到在linux下导出文件的工作,如果挨个拷贝就很麻烦也很不方便. 方法一:for循环的拷贝 这种方法适合轻量拷贝,我们把需要拷贝的文件名单独列出来,放在name.txt文件中, ...
- C#文件操作 追加、拷贝、删除、移动文件、创建目录 修改文件名、文件夹名
C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw ...
- 指定路径列表批量拷贝文件+Windows批处理命令大全
一.指定路径列表批量拷贝Windows文件 cat.bat @echo off set target = '' mkdir samples setloacal enabledelayedexpanss ...
- SHFileOperation()函数移动,复制,删除文件\文件夹
(转载于:http://hi.baidu.com/%B4%E7%B2%DD%D0%C4_/blog/item/e3a8200a28f6ea3ab1351d38.html) //删除文件或者文件夹 bo ...
- win7怎么把计算机删除文件,win7电脑怎么批量删除文件_win7电脑批量删除文件的方法 - 系统家园...
在我们日常使用win7系统电脑时,应该有很多用户遇到过需要批量删除文件的情况,那么win7电脑怎么批量删除文件呢?下面小编就为大家带来win7电脑批量删除文件的方法,感兴趣的小伙伴快来看看吧. win ...
最新文章
- 230套java web开发PDF书籍和CHM参考手册资料大全 免费下载
- JAVA入门级教学之(数据类型)
- VS Code 常规配置和一些插件 - JavaScript
- 微课--Python嵌套函数定义与使用
- Python基础篇:常见常用且要常记得的数据类型--列表
- php 降低视频分辨率,将低分辨率视频变成1920*1080高分辨视频,可自由调节分辨率宽高...
- Spring事务原理1-动态代理
- envi神经网络分类原理,ENVI神经网络分类
- 软件项目管理 1.3.敏捷项目管理概念
- 多普勒效应的原理及应用 一 多普勒现象的发现
- 添加个人博客音乐外链
- 北京最牛的医院 最牛的科室排名出炉
- 安卓逆向学习笔记(一)
- EXCEL设置自动隔行填充颜色
- kafka listeners 和 advertised.listeners 的区别及应用
- 新粉色苹果CMS10视频站源码模板 仿APP内附教程
- 轩小陌的Python笔记-day28 索引、函数及存储过程
- 网页特效源码分析----标签云
- vue发送请求时遇到index.vue?6ced:90 Uncaught (in promise) TypeError: Cannot read properties of undefined
- 【Java基础】· 集合习题详解
热门文章
- 设计模式之_Iterator_03
- 全国计算机一级d类考试内容,全国计算机一级考试WPS office复习题及答案2017
- dbeaver导出建表语句_细致入微:如何使用数据泵导出表的部分列数据
- ubuntu在线安装和卸载libusb
- STM32的ADC采集的引脚汇总
- 紧急通知!最新版CleanMyMac X月底倒计时清仓冲量!
- 【翻译】Nginx的反向代理
- win7 下的open live writer代码插件
- AngularJS笔记之创建服务方式比较 : factory vs service vs provider
- 【Go语言】【2】Sublime配置GO开发环境