调用WINDOWSAPI的简单问题,COPY文件,送分咯~~~

joycici 2006-08-26 11:29:08
我在winxp下用copyfile函数向U盘考文件时,发现速度非常慢,可是在win2000中,速度非常快。基本上是十倍还不只。
后来,研究了一下。发现底层是调用kernel32.dll这个API。于是,我把2000中的API,放在XP中调用。可是会出错。不知道为什么。请大虾解答。谢谢
调用方式:

implementation
function copyFileFrom2000Api(ASourceDir:pAnsiChar; ADestDir:pAnsiChar;over:LongBool):Bool;stdcall;external 'kernel32.dll' name 'CopyFileA';


copyFileFrom2000Api('c:\1.txt','d:\1.txt',false);

非常感谢!!!!
...全文
345 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
joycici 2006-08-30
  • 打赏
  • 举报
回复
自己写函数好象也没什么用。速度还是一样。因为底层是通过kernel32.dll这个实现的。所以,我想直接把WIN2000里的这个DLL给搞出来。然后程序直接调用这个DLL完成COPY的动作。但是直接调2000下的DLL会出错。也不知道为什么。请高手解答一下!
亮剑_ 2006-08-28
  • 打赏
  • 举报
回复
XP下的USB驱动是2.0吗
也有可能是XP和2000管理U盘的方法不太一样,乱猜猜~
GARNETT2183 2006-08-28
  • 打赏
  • 举报
回复
自己写一个也filecopy函数...
procedure TForm1.FileCopy(const SourceFileName, TargetFileName: string);
var
S, T: TFileStream;
begin
S := TFileStream.Create(SourceFileName, fmOpenRead);
try
T := TFileStream.Create(TargetFileName, fmOpenWrite or fmCreate);
try
T.CopyFrom(S, S.Size);
finally
T.Free
end;
finally
S.Free;
end;
end;
xixuemao 2006-08-28
  • 打赏
  • 举报
回复
我也遇到过,我从我的XP下考文件到U盘就慢的要命,然后去别人的2000考相当的快,我也奇怪呢。
solokey 2006-08-28
  • 打赏
  • 举报
回复
怎么没人怀疑是U盘的驱动问题...我怀疑一下下...

支持大傻的 CSDN's forum Explorer

CSDN论坛浏览器:http://CoolSlob.ys168.com/
老之 2006-08-26
  • 打赏
  • 举报
回复
我怀疑是你的操作系统的的问题。
我用你的代码在XPsp2下测试,复制10个文件到U盘,50M也就1分钟左右。
批量复制文件也可以使用SHFileOperation
zhaoyu_me 2006-08-26
  • 打赏
  • 举报
回复
CopyFile是16位的吧,用CopyFileEx试试
joycici 2006-08-26
  • 打赏
  • 举报
回复
我直接用CopyFileA这个方法也不行。速度很慢。大家可以在XP上试一下。考一个文件看不出来。如果考10个几。每个文件都是10来K的样子。就比较明显
joycici 2006-08-26
  • 打赏
  • 举报
回复
不是U盘的问题,同样的U盘。同样的程序。在不同的系统上,速度差别非常大!
老之 2006-08-26
  • 打赏
  • 举报
回复
是不是U盘的问题?你直接用Windows单元的CopyFileA来试试
joycici 2006-08-26
  • 打赏
  • 举报
回复
绝对不是操作系统的问题,因为我在N多XP的操作系统上试过都是非常慢的速度。我大概有71个文件,这些文件的大小在1K到10K不等。但是COPY这样的文件,大概需要2-3分钟。SHFileOperation这个方法我试过。速度也很慢

我还发现这样的一个现象。就是我在程序中调用的方式COPY文件,和直接用XP中的复制功能COPY文件。速度基本上是一样的。

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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