waitforsingleobject?delphi删除文件函数?vc对文件夹的操作SHFileOperation()的

电脑杂谈  发布时间:2016-09-03 09:00:23  来源:网络整理

你是否正在寻找关于shfileoperation的内容?让我把最趣味的东西奉献给你:

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

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

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

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

}

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

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

}

这四个函数在VC6.0下通过测试了一下,效果还是有的。不过感觉,FO_RENAME和FO_MOVE有点相似,而且是作用十分相似。

以上就是关于shfileoperation的全部内容,相信你一定会非常满意。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-15800-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...