请高手帮忙:请教关于SHFileOperation的用法

xuri422 2009-10-10 09:57:31
请教关于SHFileOperation的用法.代码如下:

TCHAR from[MAX_PATH] = {"C:\\Documents and Settings\\admin\\My Documents\\Downloads\\*.*\0"};
TCHAR to[MAX_PATH] = {"F:\\2\0"};

FileOp.fFlags = FOF_SIMPLEPROGRESS; //FOF_NOCONFIRMATION |
FileOp.hNameMappings = NULL;
FileOp.hwnd = m_hWnd;
FileOp.lpszProgressTitle = NULL;
FileOp.pFrom = from; //l_pFrom;
FileOp.pTo = to; //l_pTo;
FileOp.wFunc = FO_COPY;

int l_iRet = SHFileOperation(&FileOp);

现在的问题是:这段代码确实可以实现把指定目录下的所有内容拷贝到目标目录下.但拷贝到目标目录下的文件却不能通过手工删除,即使重启也无法删除目标目录(pTO)下的文件和目录,错误信息为:
无法删除 ***** :访问被拒绝.

请确定磁盘未满或未被写保护.而且文件未被使用.

说明:排除文件被使用或被写保护的可能.只要经上述代码拷贝后的文件和目录就无法删除.请高手解答,谢谢!
...全文
143 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuri422 2009-11-01
  • 打赏
  • 举报
回复
汗~~~难道真的没有人知道吗?
xuri422 2009-10-29
  • 打赏
  • 举报
回复
再次请教各位大侠:我在使用SHFileOperation时发现这个是异步函数,即在拷贝的时候该函数已经返回了,我要怎么样才知道拷贝操作在什么时候完成呢?因为拷贝一个txt文件和拷贝一个200MB的文件所有的时间肯定是不一样的。我想在拷贝操作完成后再执行后面的代码,该如何操作呢?
xuri422 2009-10-11
  • 打赏
  • 举报
回复
回复2楼:屏蔽掉hNameMappings这条语句还是有同样的问题,不能删除.
回复3楼:没有找到我想要的内容,不过还是要谢谢提供的方法.
回复4楼:复制单个文件后,同样不能将该文件删除.

刚才不经意间想起,我拷贝过去的目录可能没有删除权限,把目标路径重新设置后可以删除了.实在是我粗心大意.感谢三位的热心帮助.
xuri422 2009-10-11
  • 打赏
  • 举报
回复
回复7楼/8楼的.我的电脑上怎么没有zip这个命令呢?另外,我想把压缩的功能放到一个EXE内,不想有多的lib文件或dll文件支持.不知道是否能实现.我只需要能把指定的目录压缩为zip或rar格式即可了.
xylicon 2009-10-11
  • 打赏
  • 举报
回复
也许是TCHAR from[MAX_PATH] = {"C:\\Documents and Settings\\admin\\My Documents\\Downloads\\*.*\0"}; 这个里面有些文件复制有问题吧。

你试一下复制单个的看有没有问题。例如:
TCHAR from[MAX_PATH] = {"C:\\Documents and Settings\\admin\\My Documents\\Downloads\\a.txt\0"};
oyster2008 2009-10-11
  • 打赏
  • 举报
回复
windows里面有一个zip命令,你可以通过system或者ShellExecute来调用它,可以完成压缩
oyster2008 2009-10-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xuri422 的回复:]
同时请教另外一个问题:VC 2008里面有没有函数或者类,来实现压缩文件夹的丫?

例如我要把:C:\test\abc\*.* 我想把abc目录下的所有文件压缩成为abc.zip 或者 abc.rar 等压缩文件,能使用winrar打开或者windows自带的unzip压缩工具打开呢?
[/Quote]
zlib库吧
xuri422 2009-10-11
  • 打赏
  • 举报
回复
同时请教另外一个问题:VC 2008里面有没有函数或者类,来实现压缩文件夹的丫?

例如我要把:C:\test\abc\*.* 我想把abc目录下的所有文件压缩成为abc.zip 或者 abc.rar 等压缩文件,能使用winrar打开或者windows自带的unzip压缩工具打开呢?
YeBinYe 2009-10-11
  • 打赏
  • 举报
回复
学习了!
oyljerry 2009-10-10
  • 打赏
  • 举报
回复
http://hi.baidu.com/%B4%E7%B2%DD%D0%C4_/blog/item/e3a8200a28f6ea3ab1351d38.html
MoXiaoRab 2009-10-10
  • 打赏
  • 举报
回复
hNameMappings不要写。写了就需要SHFreeNameMappings释放

打开了一个句柄没关

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧