vc对文件夹的操作SHFileOperation()的使用转 vc 删除文件夹

news/1007/444817.html

SHFileOperations删除操作,pFrom接受变量传值时老是出错,搞了一晚上没查出原因,还好查到这位同学的资料,手工在字符串后面加2个'',就可以了,如果是直接手写路径,微软库自动作此处理了。

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

  挤时间对这个函数进行了利用了一下。写了四个函数。可以很好的对文件夹进行操作。

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

  //函数名: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;

  }

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

  //函数名:CopyFold er

  //参数: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;

  }

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

  //函数名: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;

  }

  这四个函数在VC6.0下通过测试了一下,效果还是有的。不过感觉,FO_RENAME和FO_MOVE有点相似,而且是作用十分相似。
vc对文件夹的操作SHFileOperation()的使用【转】 vc 删除文件夹
转自:<ahref='http://www.yuloo.com/jsjks/'>计算机培训网</a>

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/237600.html

更多阅读

怎样对IE浏览器的缓存进行忧化设置 如何清理ie浏览器缓存

怎样对IE浏览器的缓存进行忧化设置——简介 IE缓存是什么,IE缓存就是在上网时,临时保存在电脑中的临时文件,这些文件一般放在C盘的Internet缓存文件夹中,由于缓存的文件会非常多,有时可以达到几百M,甚至上G,占据C盘大量空间,也使C盘的运行速

人民币升值对中国经济的影响 人民币升值的内外因

人民币升值对中国经济的影响——简介?人民币汇率问题成为全球范围内的热门话题,人民币升值对我国经济产生的影响是多方面的。正确认识人民币升值原因和对我国经济的影响,将有助于我国政府和企业抓住人民币升值机遇,化解金融风险,促进我

怎么设置电脑对眼睛有益的颜色 对眼睛最好的颜色设置

随着科技的普及,电脑科技的普及化,人们因为各种原因不得不长时间面对电脑,这样对眼睛伤害无疑是巨大的,其实有个小窍门可以更好的保护自己的健康。那就是把电脑设置能眼睛喜欢的颜色,为了保护您的眼睛,请对电脑作如下设置吧怎么设置电脑

httpwatch抓包工具的使用方法 铁夹子夹野兔安装图片

httpwatch抓包工具的使用方法——简介火狐浏览器下有著名的httpfox,而HttpWatch则是IE下强大的网页数据分析工具。这个工具到底有哪些具体功能呢?这个我就不再赘述了,百度百科上列的很全面,但也比较抽象。我只想说我曾经用这个工具去分

声明:《vc对文件夹的操作SHFileOperation()的使用转 vc 删除文件夹》为网友大错特错分享!如侵犯到您的合法权益请联系我们删除