hpdeskjet 发表于 2008-8-8 10:33:25

复制一个600M的大文件时,怎样显示进度条?

当复制几个文件时,可以按照文件的总数和已复制的文件数量,将就进度条显示成从 0% ~ 100% 逐渐变化的样子。
可是,当仅复制一个几百兆的大文件时,该如何让进度条显示成从 0% ~ 100% 逐渐变化的样子呢?

请前辈们帮我一下!谢谢!谢谢!:face (36):

[ 本帖最后由 hpdeskjet 于 2008-9-9 23:15 编辑 ]

顽固不化 发表于 2008-8-8 10:48:03

检测目标文件大小,返回值与源文件的比值

hpdeskjet 发表于 2008-8-8 10:58:26

是不是用 FileGetSize( )这个函数检测?
我先手工从F盘复制一个几百兆的电影到D盘,windows复制窗口显示大概需要1分钟的时间。
在这段时间里文件是没有复制完成的,可是用 FileGetSize( )函数检测目标文件,返回的文件大小总是与源文件相同!郁闷~~劳烦前辈再帮我想想办法~~

skyfree 发表于 2008-8-8 11:39:52

请参阅已解决问题区,谢谢!

http://www.autoitx.com/forum.php?mod=viewthread&tid=1964

顽固不化 发表于 2008-8-8 12:26:20

原帖由 skyfree 于 2008-8-8 11:39 发表 http://www.autoitx.com/images/common/back.gif
请参阅已解决问题区,谢谢!

http://www.autoitx.com/forum.php?mod=viewthread&tid=1964
7猫那个运行出错。

sanhen 发表于 2008-8-8 14:09:23

VBS的呢?

skyfree 发表于 2008-8-8 14:39:16

原帖由 顽固不化 于 2008-8-8 12:26 发表 http://www.autoitx.com/images/common/back.gif

7猫那个运行出错。

我正在用,没问题,仔细检查一下

顽固不化 发表于 2008-8-8 16:39:29

原帖由 sanhen 于 2008-8-8 14:09 发表 http://www.autoitx.com/images/common/back.gif
VBS的呢?

VBS的可以的,复制文件时,_DirCopy($SourceDir,$Destdir) ,第一个可以是源文件,第二个是目标目录,而不是重命名的新文件名。

原帖由 skyfree 于 2008-8-8 14:39 发表 http://www.autoitx.com/images/common/back.gif


我正在用,没问题,仔细检查一下

有点小问题吧。似乎要分析原文件结构什么的,复制个30M的RAR文件还是报错,好像对7z、RAR压缩文件不感冒。


如果顺利copy,高手们的源码都能使windows的copy对话框出现。

hpdeskjet 发表于 2008-8-8 16:50:32

非常感谢前辈们的这个方法,用SHELL对象来实现的确很简单,很好用!如果是用AU3的进度条控件,是否也能实现像SHELL对象复制文件时出现的进度条的样子,即便只复制一个大文件,也能渐进的显示 0%~100% 的进度?

当网速或者是机器的速度不一样时,用SHELL对象从服务器上复制个电影到本地机器,进度条显示的速度是不一样的!我觉得“顽固不化”前辈的思路比较对,检测目标文件与源文件的大小差多少,这样不管机器环境怎么样,进度条都能比较准确的显示出进度来。但是就是不知道AU3有什么函数能够检测出正在复制的文件实际已经复制了多少,FileGetSize() 肯定不行,它检测目标文件时,不管复制进程有没有结束,返回的目标文件的大小都与源文件一样。

我在写一个从局域网服务器复制电影到本地客户机的程序,想在程序界面内使用自己的进度条,不想使用SHELL对象来实现复制,因为那样会出现windows的复制文件对话框。

再次劳烦大家帮帮我,感激不尽!:face (36):

deniro 发表于 2008-8-10 22:30:13

如从网络复制的话可以使用
InetGet 、InetGetsize函数来下载服务器文件,
下载过程中可以使用@InetGetBytesRead宏获取当前下载文件的字节,这样就可以实现文件下载进度条;

pcbar 发表于 2008-8-11 21:08:24

AMU写过一个自动更新游戏的,调用了fastcopy,可以参考

hpdeskjet 发表于 2008-9-9 23:12:56

问题已解决!感谢deniro前辈!!

天堂泪吻泪 发表于 2009-7-10 00:41:04

不是很懂!

menfan 发表于 2009-7-16 12:24:15

我喜欢fastcopy

Netfox 发表于 2009-7-26 00:16:34

ksks.....................................
页: [1] 2
查看完整版本: 复制一个600M的大文件时,怎样显示进度条?