zoukankan      html  css  js  c++  java
  • 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;

      }

  • 相关阅读:
    Python——Sublime Text3编写Python的一些问题
    html/css/js----js中遇到的一些问题
    eclipse--常见问题
    前端如何实现拖拽效果(一)
    在vue中如何实现上传本地视频和图片预览
    关于NodeJS中mysql连接池卡死问题
    学习Mysql3——约束条件
    Vuex基础用法
    学习Mysql2--增删改查
    学习Mysql1——mysql安装和基本命令使用
  • 原文地址:https://www.cnblogs.com/ericdm/p/9049295.html
Copyright © 2011-2022 走看看