C++学习之:复制和粘贴文件/文件夹
从剪贴板上获得要复制/剪贴的文件路径之后,如何完成文件/文件夹的粘贴呢。下面列出了两个函数用来完成这些功能
- //复制的粘贴
- DWORD VrvCopyFile( LPCWSTR lpSrc, LPCWSTR lpDst )
- {
- DWORD dwError = 0;
- CString strFiles = lpSrc;
- CString strFilePath = _T("");
- int idx= 0;
- while (strFiles.Find('#',idx) != -1)
- {
- int y = strFiles.Find('#',idx);
- strFilePath = strFiles.Mid(idx,y - idx);
- TCHAR szFile[MAX_PATH] = {0};
- lstrcpy(szFile,strFilePath.GetBuffer());
- strFilePath.ReleaseBuffer();
- idx = strFiles.Find('#',idx);
- idx++;
- SHFILEOPSTRUCT shFileOp = {0};
- shFileOp.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
- shFileOp.pFrom = szFile;
- shFileOp.pTo = lpDst;
- shFileOp.wFunc = FO_COPY;
- dwError = SHFileOperation(&shFileOp);
- }
- return dwError;
- }
- //剪贴的粘贴
- DWORD VrvMoveFile(LPCWSTR lpSrc, LPCWSTR lpDst)
- {
- DWORD dwError = 0;
- CString strFiles = lpSrc;
- CString strFilePath = _T("");
- int idx= 0;
- while (strFiles.Find('#',idx) != -1)
- {
- int y = strFiles.Find('#',idx);
- strFilePath = strFiles.Mid(idx,y - idx);
- TCHAR szFile[MAX_PATH] = {0};
- lstrcpy(szFile,strFilePath.GetBuffer());
- strFilePath.ReleaseBuffer();
- idx = strFiles.Find('#',idx);
- idx++;
- SHFILEOPSTRUCT shFileOp = {0};
- shFileOp.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR;
- shFileOp.pFrom = szFile;
- shFileOp.pTo = lpDst;
- shFileOp.wFunc = FO_MOVE;
- dwError = SHFileOperation(&shFileOp);
- }
- return dwError;
- }
源路径存放了多个文件路径,使用#分开,每个文件/文件夹逐个粘贴。
转载于:https://blog.51cto.com/3457302/902593
C++学习之:复制和粘贴文件/文件夹相关推荐
- 如何在Linux终端中复制和粘贴文本、文件和文件夹。
复制和粘贴是电脑上使用最多的操作之一.虽然使用Ctrl+C和Ctrl+V键盘快捷键很容易做到这一点,但在Linux终端上就不是那么简单了.你有几种选择来完成这项工作.以下是你如何在Linux终端中复制 ...
- 复制粘贴Excel文件后,显示“安全警告 宏已被禁用”,复制后得到的文件看不到内容
问题 系统:Win10 Excel版本:2016 我将一个原本正常的Excel文件复制到另一个文件夹后,打开就提示安全警告 宏已被禁用(复制操作时电脑莫名会变卡),而且原来文件里的数据也看不到了. 复 ...
- 解决QQ识图后复制文字然后将其粘贴到文件重命名中,总是显示重命名不成功
如图再使用QQ屏幕识图后,复制文字,然后粘贴到文件重命名中,提示文件名不能包含下列任何字符: \ / : * ? " < > l 解决方法: 贴完以后会发现有个类似于软回车一样的 ...
- vi中多个文件相互之间的复制、粘贴功能简介!
大家在vi编辑中,常常遇到想把文件A里面的一行或多行,复制到B文件里面去 (可能很多人不知道怎么办),该怎么做了? 下面是几中方法: 1.如果你有多台机器,而且是联网的,你可以用netterm虚 ...
- (最简单)安装vmware-tools实现复制粘贴和文件复制粘贴
现在已经推出开源的open-vm-tools工具了,无需手动从安装包安装vmware-tools. 一.如果你以前安装过VMware-tools,需要使用下面的命令彻底删除它. sudo vmware ...
- 电脑上复制粘贴同名文件被覆盖了怎么办
平时我们在电脑上手动复制文件的时候,如果出现同名文件,会弹出一个提示窗口,询问是否覆盖还是跳过,这样对于文件少的,是挺方便的,但是一旦文件多了起来,复制时,你是要先选择覆盖还是跳过,又或者是自动编号同 ...
- vim 在两个不同文件中复制与粘贴(简单,详细)
vim 在两个不同文件中复制与粘贴 (vim在系统剪切板的复制与粘贴) 假设将 b文件的某内容 复制到 a文件中 普通模式下 :reg 命令 可以查看vim 自己的粘贴板,分别是 ". 0. ...
- VMware安装vmtools后不能粘贴复制和拖拽文件
1.环境 Vmware16 , Ubuntu 18.04 2.事由 安装完Ubuntu18,安装Vmtools后,不能实现与主机之间文本的复制粘贴,文件亦无法与主机之间拖拽复制.重新安装Vmtools ...
- js html table转excel文件 js获取(复制 / 粘贴板)的内容js复制table粘贴到excel中
js html table转excel文件 参考资料: 70行代码实现vue+sheetJs导出excel功能 sheetJs的git项目代码 代码太长建议直接粘贴复制 <!DOCTYPE ht ...
最新文章
- 这一次,我拒绝了Python,选择了Go
- AI圈真魔幻!谷歌最新研究表明卷积在NLP预训练上竟优于Transformer?LeCun暧昧表态...
- SAP RETAIL 供应商寄售库存的UB STO
- 为何需要Android组件化,如何搭建?
- 【企业管理】14 项管理原则
- php myadmin utf,phpmyadmin在哪里设置utf_8
- Vue指令篇_v-model_数据双向绑定
- 网站页首可关闭广告条
- php对外发包引发服务器崩溃的终极解决方法分享
- Java EE 7:新增功能???
- 为QT添加qss样式文件
- PostgreSQL 最佳实践 - 在线增量备份与任意时间点恢复
- Atitit 常见每日流程日程日常工作.docx v9 每次pertime Atitit 常见每日每天流程日程日常工作 v9 raf attilax总结分享.docx Ver history i
- Arm中国换帅风波始末 | 钛媒体深度
- 股票量化分析工具QTYX使用攻略——北上资金持仓选股(更新2.5.8)
- Xmind2021安装激活破解
- 4.9-4.10 矩阵乘法的性质 矩阵的幂运算 矩阵的转置及其性质
- 美国音乐学院计算机音乐专业排名2015年,美国音乐学校排名Top100
- 去除idea中xml黄色背景
- Embedding Cardinality Constraints in Neural Link Predictors (SAC 2019)