|
导读作者:未名码头 在所开以的应用软件中,有时我们对某些文件进行拷贝(如对数据库进行备份、制作 安装程序),但是常用的一些语言却没有提供可直接进行文件拷贝的过程或函数。为此 ,我曾利用Delphi... 作者:未名码头 在所开以的应用软件中,有时我们对某些文件进行拷贝(如对数据库进行备份、制作 安装程序),但是常用的一些语言却没有提供可直接进行文件拷贝的过程或函数。为此 ,我曾利用Delphi编制了可提供文件拷贝过程的动态连接库Copy.dll,其输出过程为 CopyFile。由于DLL具有简化编程、运行速度快等诸多优点,且不受编程语言的限制, 用Delphi编写的Copf.dll同样被VB、VC等面向对象语言进行静态或动态调用,人而方便 地在程序中实现文件拷贝。 附源程序如下: library copf; uses SysUntils,Classes; procedure copyfile(Sfname.Dfname:string):far;export;//带路径的文件名; Var Sourcef,Destinef:file; NumRead,NumWritten:Integer; Buf:array[1..4096] of char;//定义缓冲区; Begin AssignFile(Sourcef,dfname); Reset(Sourcef,1); AssignFile(Destinef,1); Rewrite(Destinef,1); Repeat BlockRead(Sourcef,Buf,SizeOf(Buf),Numread);//读源文件 BlockWrite(destinef,buf,NumRead,NumWritten);//写目标文件; Until (Numread=0) or (Numwritten<>numread); closeFile(soucef); Closefile(destinef); end; Esports copyfile;//输出过程; end; 以上源程序编译后便生成Copf.dll 现就静态调用举例: unit Name; interface uses Windows...; Type Tzcform=class(Tform) ... end; var Form1:Tform1; implementation Procedure copyfile(Sfname,dfname:string);far;external'c:\copf';//DLL路径名; {$R *.DFM} Procedure Tform1.CopyButtonclick(sender:tobject); Begin ... if fileesist(sfname)//如果源文件; then copyfile(sfname,dfname); ... end; |
温馨提示:喜欢本站的话,请收藏一下本站!