hur.cn - 华软网

 热门搜索

请教:关于SHFileOperation复制多个文件的问题!

  作者:未知    来源:网络    更新时间:2011/9/27
现在用CStringArray获取到一系列的文件夹目录,
例如:
C:\1\1.jpg
C:\1\1.jpg
C:\2\1.jpg
C:\2\1.jpg
C:\3\1.jpg
C:\3\1.jpg
...这样的目录,这些是源文件目录。。

文件目标目录:
D:\a\1\1.jpg
D:\a\1\1.jpg
D:\a\2\1.jpg
D:\a\2\1.jpg
D:\a\3\1.jpg
D:\a\3\1.jpg
...
注意,各个文件的大小是不固定的。。

1.用SHFileOperation函数, 如何实现这些文件 “多VS多” 复制。

2.如何知道这些文件复制时总体时间,复制速度是多少?


---华软 网友回答---
帮顶下
---华软网友回复---
高人谁来解决下。。。
---华软网友回复---
只能一个一个目录拷贝

进度可以先计算总的文件大小,个数等,然后周期性获得当前已经复制的个数,大小,然后计算一个大概的进度就可以了。
---华软网友回复---
现在有个怪的问题,SHFileOperation 可以复制多个文件夹了,

但是程序第一次复制时,SHFileOperation 的返回值是 1026 
GetLastError() 返回值是6 句柄无效

第一次在操作文件夹复制,就完全可以复制了,只有程序不关闭,怎么复制都可以,不知道为啥第一次不成功,debug看不出问题。。

C++">
SHFILEOPSTRUCT lpsh;
ZeroMemory(&lpsh,sizeof(SHFILEOPSTRUCT));
//lpsh.hwnd = NULL;
//lpsh.hNameMappings = NULL;
//lpsh.lpszProgressTitle = NULL;
lpsh.fFlags = FOF_NOCONFIRMATION | FOF_MULTIDESTFILES |FOF_NOERRORUI;//|FOF_FILESONLY|FOF_NOCONFIRMMKDIR ;
lpsh.wFunc = FO_COPY; // FO_MOVE 则是移动
lpsh.pFrom = pFrom; 
lpsh.pTo = pTo;
nlen = SHFileOperation(&lpsh);

现在很是郁闷!不知道为啥第一次不成功。。。
---华软网友回复---
使用SHFileOperation函数的时候注意一下double-null terminated的问题
---华软网友回复---
楼上说得不错,文件路径要注意。
---华软网友回复---
引用 5 楼 visualeleven 的回复:
使用SHFileOperation函数的时候注意一下double-null terminated的问题


这个已经做了。。

单击按钮 ,第一次不能复制,在单击一次,就可以完全复制了。。

奇怪就在这里。。      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。