shfileoperation 移动删除拷贝文件
来源:互联网 发布:ddg1000数据 编辑:程序博客网 时间:2024/04/30 22:22
SHFileOperation是一种外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等,该函数使用起来非常简单,它只有一个指向SHFILEOPSTRUCT结构的参数。使用SHFileOperation()函数时只要填写该专用结构--SHFILEOPSTRUCT,告诉Windows执行什么样的操作,以及其它重要信息就行了。SHFileOperation()的特别之处在于它是一个高级外壳函数,不同于低级文件处理。当调用SHFileOperation操作文件时,相应的外壳拷贝处理器(如果有的话)被调用。
hwnd; //父窗口句柄, 0为桌面
BOOL DeleteFolder(LPCTSTR lpszPath)
{
SHFILEOPSTRUCT FileOp;
ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));
FileOp.fFlags = FOF_NOCONFIRMATION;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszPath;
FileOp.pTo = NULL;
FileOp.wFunc = FO_DELETE;
return SHFileOperation(&FileOp) == 0;
}
这是网上找的一段代码,但是在删除目录时总是说无法读取源文件或磁盘。但是目录确实存在。
查了查MSDN,网上看到别人也有同样的问题,看看他们的解答。原来SHFileOperation中的pFrom可以表示多个路径,各个路径之间以'\0'分隔,最后以'\0\0'(即连续的两个'\0')结束,
于是改了过来。可是还是不行。
去掉路径最后的一个'\'("c:\\data\\"改为"c:\\data"),成功。
下面这个函数需要注意同样的问题。
BOOL CopyFolder(LPCTSTR lpszFromPath,LPCTSTR lpszToPath)
{
SHFILEOPSTRUCT FileOp;
ZeroMemory((void*)&FileOp,sizeof(SHFILEOPSTRUCT));
FileOp.fFlags = FOF_NOCONFIRMATION ;
FileOp.hNameMappings = NULL;
FileOp.hwnd = NULL;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = lpszFromPath;
FileOp.pTo = lpszToPath;
FileOp.wFunc = FO_COPY;
return SHFileOperation(&FileOp) == 0;
}
- shfileoperation 移动删除拷贝文件
- VC批量拷贝,移动,删除文件---SHFileOperation
- SHFileOperation 删除和拷贝文件
- SHFileOperation删除和拷贝文件(夹)
- SHFileOperation删除和拷贝文件(夹)
- SHFileOperation删除和拷贝文件(夹)
- SHFileOperation删除和拷贝文件(夹)
- SHFileOperation删除和拷贝文件(夹)
- SHFileOperation删除和拷贝文件(夹)
- VC 移动,复制,删除文件(SHFileOperation)
- VC 移动,复制,删除文件(SHFileOperation)
- VC 移动,复制,删除文件(SHFileOperation)
- VC 移动,复制,删除文件(SHFileOperation)
- VC 移动,复制,删除文件(SHFileOperation) .
- VC 移动,复制,删除文件(SHFileOperation)
- SHFileOperation()函数移动,复制,删除文件\文件夹
- SHFileOperation()的外壳函数,用它可以实现各种文件操作,如文件的拷贝、删除、移动等
- Shell的文件操作函数SHFileOperation 移动,复制,删除文件
- sip协议中文(2)
- 【2】使用DuiLib的XML文件创建界面
- 二叉树的镜像
- 各变量范围 (int ,long int ,unsigned int , long long)
- 失忆.逝忆.拾忆
- shfileoperation 移动删除拷贝文件
- 关于jquery.datatable插件从数据库动态读取数据-动态分页
- 关于梦想
- sip协议中文(3)
- BlueTooth: 浅析CC2540的OSAL原理
- PAT A 1034. Head of a Gang (30)
- 30天制作操作系统之挑战指针
- uva 11536 - Smallest Sub-Array(two pointers)
- ubuntu12.04使用root登陆的简单设置