MFC对文件文件夹转移、删除、重命名、复制

转载 2013年12月04日 17:08:05

 

SHFileOperation()函数主要对文件夹有四种操作:复制,删除,移动,重命名。

写了四个函数。可以很好的对文件夹进行操作。

 

//函数名:MoveFolder

  //参数:lpszFromPath 源文件夹路径 。lpszToPath 目的文件夹路径

  //作用:移动原文件夹及其中文件都指定的路径下

  //

  /////////////////////////////////////

  BOOL MoveFolder(LPCTSTR lpszFromPath,LPCTSTR lpszToPath)

  {

  int nLengthFrm = strlen(lpszFromPath);

  char *NewPathFrm = new char[nLengthFrm+2];

  strcpy(NewPathFrm,lpszFromPath);

  NewPathFrm[nLengthFrm] = '\0';

  NewPathFrm[nLengthFrm+1] = '\0';

  SHFILEOPSTRUCT FileOp;

  ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));

  FileOp.fFlags = FOF_NOCONFIRMATION ;

  FileOp.hNameMappings = NULL;

  FileOp.hwnd = NULL;

  FileOp.lpszProgressTitle = NULL;

  FileOp.pFrom = NewPathFrm;

  FileOp.pTo = lpszToPath;

  FileOp.wFunc = FO_MOVE;

  return SHFileOperation(&FileOp) == 0;

  }



/////////////////////////////////////

  //ReNameFolder

  //参数:lpszFromPath 源文件夹路径 。lpszToPath 目的文件夹路径

  //作用:修改原文件夹的名字。

  //

  /////////////////////////////////////

  BOOL ReNameFolder(LPCTSTR lpszFromPath,LPCTSTR lpszToPath)

  {

  int nLengthFrm = strlen(lpszFromPath);

  char *NewPathFrm = new char[nLengthFrm+2];

  strcpy(NewPathFrm,lpszFromPath);

  NewPathFrm[nLengthFrm] = '\0';

  NewPathFrm[nLengthFrm+1] = '\0';

  SHFILEOPSTRUCT FileOp;

  ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));

  FileOp.fFlags = FOF_NOCONFIRMATION ;

  FileOp.hNameMappings = NULL;

  FileOp.hwnd = NULL;

  FileOp.lpszProgressTitle = NULL;

  FileOp.pFrom = NewPathFrm;

  FileOp.pTo = lpszToPath;

  FileOp.wFunc = FO_RENAME;

  return SHFileOperation(&FileOp) == 0;

  }



/////////////////////////////////////

  //函数名:DeleteFolder

  //输入参数:LpszPath 要删除的路径指针

  //作用:删除指定文件夹以及里面的文件

  //

  /////////////////////////////////////

  BOOL DeleteFolder(LPCTSTR lpszPath)

  {

  int nLength = strlen(lpszPath);

  char *NewPath = new char[nLength+2];

  strcpy(NewPath,lpszPath);

  NewPath[nLength] = '\0';

  NewPath[nLength+1] = '\0';

  SHFILEOPSTRUCT FileOp;

  ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));

  FileOp.fFlags = FOF_NOCONFIRMATION;

  FileOp.hNameMappings = NULL;

  FileOp.hwnd = NULL;

  FileOp.lpszProgressTitle = NULL;

  FileOp.pFrom = NewPath;

  FileOp.pTo = NULL;

  FileOp.wFunc = FO_DELETE;

  return SHFileOperation(&FileOp) == 0;

  }

  /////////////////////////////////////

  //函数名:CopyFolder

  //参数:lpszFromPath 源文件夹的路径 。 lpszToPath 目的文件夹的路径

  //作用:拷贝文件夹及其文件夹中的所有内容

  //

  //////////////////////////////////////

  BOOL CopyFolder(LPCTSTR lpszFromPath,LPCTSTR lpszToPath)

  {

  int nLengthFrm = strlen(lpszFromPath);

  char *NewPathFrm = new char[nLengthFrm+2];

  strcpy(NewPathFrm,lpszFromPath);

  NewPathFrm[nLengthFrm] = '\0';

  NewPathFrm[nLengthFrm+1] = '\0';

  SHFILEOPSTRUCT FileOp;

  ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));

  FileOp.fFlags = FOF_NOCONFIRMATION ;

  FileOp.hNameMappings = NULL;

  FileOp.hwnd = NULL;

  FileOp.lpszProgressTitle = NULL;

  FileOp.pFrom = NewPathFrm;

  FileOp.pTo = lpszToPath;

  FileOp.wFunc = FO_COPY;

  return SHFileOperation(&FileOp) == 0;

  }


相关文章推荐

Python学习笔记(20)-文件和文件夹的移动、复制、删除、重命名

一,概述python中对文件和文件夹进行移动、复制、删除、重命名,主要依赖os模块和shutil模块,要死记硬背这两个模块的方法还是比较困难的,可以用一个例子集中演示文件的移动、复制、删除、重命名,用...

Python 文件/文件夹操作(读写read/write、复制copy、删除delete、重命名rename)

1. 读文件    fp = open("demo.txt", mode="r", encoding="gbk")        fp.read()  #  一次性读取所有内容,指针指向文件末尾 ...

Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝、添加内容、修改内容、读取内容

这几天做了一个Android关于文件及文件夹相关操作的软件,自己就总结写了一个关于文件创建、遍历、删除、重命名、复制拷贝、添加内容、修改内容、读取内容的工具类,方便以后快速的对文件进行一些简单操作,使...
  • javaSXL
  • javaSXL
  • 2017年05月10日 14:33
  • 599

VC 复制移动删除重命名文件文件夹 .

说明:1.以下封装了4个函数_CopyFile,_DeleteFile,_MoveFile,_ReNameFile2.每个函数都先拷贝了原来的路径,保证了路径是以2个/0/0结尾。(如果不以2个/0/...
  • guomei
  • guomei
  • 2011年07月25日 15:33
  • 1194

文件操作 复制移动删除重命名文件文件夹(转帖)

文件操作 复制移动删除重命名文件文件夹转自:http://blog.csdn.net/jacky_qiu/archive/2010/12/04/6054759.aspx━━━━━━━━━━━━━━━━...

Java遍历文件夹,重命名文件,删除文件,复制文件等操作

package mycompare; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFound...
  • SCGH_Fx
  • SCGH_Fx
  • 2017年05月11日 14:43
  • 201

java13.语言进阶------本地文件操作---文件夹的创建、重命名、删除

一、创建示例1:import java.io.File;public class HelloFolder { public static void main(String[] args) { ...

Java创建、重命名、删除文件和文件夹

Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了。如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归。 下面是的一个...

Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法

tp://hi.baidu.com/%B0%A2%CD%F2/blog/item/a45890673218382fab184ca4.htmlUbuntu下创建、重命名、删除文件及文件夹,强制清空回收站...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC对文件文件夹转移、删除、重命名、复制
举报原因:
原因补充:

(最多只允许输入30个字)