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


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

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

     

    //函数名:MoveFolder

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

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

      //

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

      BOOL MoveFolder(LPCTSTR lpszFromPath,LPCTSTR lpszToPath)

      {

      int nLengthFrm = strlen(lpszFromPath);

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

      strcpy(NewPathFrm,lpszFromPath);

      NewPathFrm[nLengthFrm] = '';

      NewPathFrm[nLengthFrm+1] = '';

      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] = '';

      NewPathFrm[nLengthFrm+1] = '';

      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] = '';

      NewPath[nLength+1] = '';

      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] = '';

      NewPathFrm[nLengthFrm+1] = '';

      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;

      }

  • 相关阅读:
    【xamarin + MvvmCross 从零开始】一、环境安装
    .NET微服务从0到1:服务容错(Polly)
    .NET微服务从0到1:服务注册与发现(Consul)
    .NET微服务从0到1:API网关(Ocelot)
    .NET Core之单元测试(四):Fluent Assertions的使用
    .NET Core之单元测试(三):Mock框架Moq的使用
    .NET Core之单元测试(二):使用内存数据库处理单元测试中的数据库依赖
    .NET Core之单元测试(一):入门
    win+navicat
    JDBC介绍和Mybatis运行原理及事务处理
  • 原文地址:https://www.cnblogs.com/ericdm/p/9049295.html
Copyright © 2020-2023  润新知