c语言如何重命名文件夹,VC 复制移动删除重命名文件文件夹
/*
能产生对话框的标志:
FOF_SILENT //progress dialog
FOF_RENAMEONCOLLISION //replace dialog
FOF_NOCONFIRMATION //confirmation dialog
FOF_NOCONFIRMMKDIR //asks for your permission to create a new folder
FOF_NOERRORUI //error message
FOF_ALLOWUNDO //允许放回回收站,一般这个最好做默认
FOF_NOCONFIRMATION //不出现确认对话框(当需要覆盖时)
FOF_SILENT //不显示进度对话框
FOF_NOERRORUI //No user interface will be displayed if an error occurs.
FOF_NOCONFIRMMKDIR //如果目的目录不存在,就默认创建,不需确认
FOF_RENAMEONCOLLISION //如果文件(夹)已存在,自动为其添加序列号修改文件名。此时不会出现确认对话框
FOF_MULTIDESTFILES //把文件夹里的所有内容复制到FileOp.pTo指定的文件夹里,而不是直接复制一个文件夹
FOF_SIMPLEPROGRESS //Displays a progress dialog box but does not show the file names
FOF_CONFIRMMOUSE //Not currently implemented.
FOF_FILESONLY: //执行通配符,只执行文件;
FOF_WANTMAPPINGHANDLE: //要求SHFileOperation()函数返回正处于操作状态的实际文件列表,文件列表
名柄保存在hNameMappings成员中。SHFILEOPSTRUCT结构还包含一个SHNAMEMAPPING结构的数组,此数组
保存由SHELL计算的每个处于操作状态的文件的新旧路径。
说明:
1.以下封装了4个函数_CopyFile,_DeleteFile,_MoveFile,_ReNameFile
2.每个函数都先拷贝了原来的路径,保证了路径是以2个\0\0结尾。(如果不以2个\0\0结尾,往往会出错)
3.对于文件或文件夹都适用
*/
/****************************************************************************
复制文件或者文件夹,需要把路径添加2个\0\0
****************************************************************************/
static
bool _CopyFile(const TCHAR *_pFrom,const TCHAR *_pTo,WORD flags=FOF_NOCONFIRMATION)
{
TCHAR pTo[MAX_PATH]={0}; _tcscpy(pTo,_pTo);
TCHAR pFrom[MAX_PATH]={0}; _tcscpy(pFrom,_pFrom);
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags= flags;
FileOp.pFrom = pFrom;
FileOp.pTo = pTo;
FileOp.wFunc = FO_COPY;
return SHFileOperation(&FileOp) == 0;
}
/****************************************************************************
删除文件或者文件夹,需要把路径添加2个\0\0
****************************************************************************/
static
bool _DeleteFile(const TCHAR* _pFrom,WORD flags=FOF_ALLOWUNDO|FOF_NOCONFIRMATION)
{
TCHAR pFrom[MAX_PATH]={0}; _tcscpy(pFrom,_pFrom);
SHFILEOPSTRUCT FileOp={0};
FileOp.pFrom = pFrom;
FileOp.pTo = NULL; //一定要是NULL
FileOp.fFlags= flags;
FileOp.wFunc = FO_DELETE; //删除操作
return SHFileOperation(&FileOp) == 0;
}
/****************************************************************************
移动文件或者文件夹,需要把路径添加2个\0\0
****************************************************************************/
static
bool _MoveFile(const TCHAR *_pFrom,const TCHAR *_pTo,WORD flags=FOF_NOCONFIRMATION)
{
TCHAR pTo[MAX_PATH]={0}; _tcscpy(pTo,_pTo);
TCHAR pFrom[MAX_PATH]={0}; _tcscpy(pFrom,_pFrom);
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags= flags;
FileOp.pFrom = pFrom;
FileOp.pTo = pTo;
FileOp.wFunc = FO_MOVE;
return SHFileOperation(&FileOp) == 0;
}
/****************************************************************************
重命名文件或者文件夹
可以的话用 rename(buf,TempFilePath) (文件和文件夹都可以) because不需要把路径添加2个\0\0
****************************************************************************/
static
bool _ReNameFile(const TCHAR *_pFrom,const TCHAR *_pTo,WORD flags=FOF_NOCONFIRMATION)
{
TCHAR pTo[MAX_PATH]={0}; _tcscpy(pTo,_pTo);
TCHAR pFrom[MAX_PATH]={0}; _tcscpy(pFrom,_pFrom);
SHFILEOPSTRUCT FileOp={0};
FileOp.fFlags = flags;
FileOp.pFrom = pFrom;
FileOp.pTo = pTo;
FileOp.wFunc = FO_RENAME;
return SHFileOperation(&FileOp) == 0;
}
c语言如何重命名文件夹,VC 复制移动删除重命名文件文件夹相关推荐
- linux 复制并创建文件夹,Linux_文件及文件夹[创建][复制][移动][删除][重命名]
一.文件/文件夹创建 1.文件的创建 touch , vi/vim/nano , ... 语 法: touch [-acfm][-d ][-r ][-t ] [--help] [--version ...
- linux 文件夹 乱码,Linux 如何删除乱码文件名的文件或文件夹
Terminal cd 到 Documents, 然后用ls指令,显示有个文件以-$N开头,但是直接通过界面的方式查看 Documents 中的文件,并看不到这个奇怪的文件. 尝试在terminal中 ...
- rar文件解压后可以删除吗?rar文件删除后怎么恢复?
rar通俗一点就叫压缩包,它是压缩包文件类型的其中一种,也是我们比较常见的压缩包类型.且问rar文件解压后可以删除吗?rar文件删除后怎么恢复?别着急,你想知道的答案都在本文,事不宜迟马上来看看吧! ...
- linux桌面卷积文件删除不掉,Linux 删除文件夹和文件的命令(强制删除包括非空文件)...
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r ...
- win10计算机文件夹,win10我的电脑6个文件夹如何清理_win10删除我的电脑6个文件夹操作步骤...
使用win10系统过程中,用户需要对系统中多余的文件进行及时的清理,以此提高系统运行的速度,然而最近有用户的win10系统我的电脑中出现了6个文件夹,那么win10我的电脑6个文件夹如何清理呢?下面就 ...
- html复制文件到目录,复制指定目录下的全部文件到另一个目录中
linux下文件的复制.移动与删除命令为:cp,mv,rm 复制指定目录下的全部文件到另一个目录中 假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了 ...
- 查找重复文件_快速查找、删除重复图片及文件!
照片或者文件多了难免就会有重复,浪费硬盘空间的情况,下面让我们一起使用ACDSee 官方免费版软件删除你的重复图片及文件吧! 1. 打开软件,点击"工具"下的"查找重复项 ...
- Linux 删除文件夹和文件的命令(强制删除包括非空文件)
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可. 直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字 -r ...
- linux删除百万个文件夹,linux下如何删除一百万个文件
今日QA发了个请求,要求删除某目录下指定格式的文件. [[email protected] resin-3.1.9]# ls | wc -l 1013964 统计了下,有一百万多个文件! 而且文件的命 ...
最新文章
- 一 梳理 从 HDFS 到 MR。
- 《系统集成项目管理工程师》必背100个知识点-24变更的常见原因
- 【Linux】一步一步学Linux——let命令(223)
- C++实现一个简易的线程池
- mybatis_SQL映射(2)
- redis源码剖析(7):基础数据结构quicklist
- iTextSharp快速使用指南
- 今日头条的企业服务产品线
- 守望先锋为何如此火爆
- The CDB process terminated
- oracle 11g 创建表空间
- 【校招Web前端面试干货分享】
- Python那些让我疑惑许久的代码--2
- L2-027. 名人堂与代金券
- Dictionary Learning(字典学习、稀疏表示以及其他)
- 圣诞节计算机音乐,圣诞节音乐
- 安装python3缺少db4-devel
- 华为服务器网口作用,设置网口模式(mode)
- 好用的前端组件-颜色选择器
- 银行离岸汇款客户交易预测
热门文章
- vb/vb.net开发精粹(4)
- 三十四、Fluent液体喷雾蒸发模拟
- 我心目中最棒的 10 个 Python 库
- CVPR 2019 ViLBERT: Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language
- WSFederation 身份验证模块概述
- ##04- Optional
- 机器人教练SWOT分析_全球工业机器人市场四大家族SWOT分析
- 2018《财富》世界500强出炉,比500强更多的财富在这里!—创成汇
- C#与.NET程序员面试宝典 2.1.6 面试题6:C#中的托管代码是什么
- linux发展现状和学习建议