delphi中有关磁盘文件管理/处理的函数

来源:互联网 发布:福冈软件银行鹰 编辑:程序博客网 时间:2024/05/08 04:58

1.   CopyFile函數詳解
━━━━━━━━━━━━━━━━━━━━━━━━━━

CopyFile函數,文件拷贝函数.其基本結構如下:
copyfile(  
            lpcstr     lpexistingfilename,         //     源文件路径  
            lpcstr     lpnewfilename,                   //新文件路径  
            bool     bfailifexists                         //为true的话,如果新文件已存在,则返回false;如果為false的話,如果新文件已經存在,會將原來的覆蓋.  
            );
函數成功返回true,失敗返回false;

举例:
CopyFile(pChar('sql.txt'),pChar(ExtractFilePath(Application.ExeName) + '2.txt'),true);

后來在試驗的時候發現,源文件前可以不加pChar函數轉換,但新文件就不可以,會出現類型轉化錯誤.而且當源文件名前不加路徑時,默認是在應用程序的本目錄下.

因為函數返回的是boolean型,所以也可以這樣寫:
if CopyFile('D:/yun_yue/sql.txt',pChar(ExtractFilePath(Application.ExeName) + '2.txt'),true) then
    //而且,請確保你的文件路徑正確,否則函數返回失敗.
     ShowMessage('Copy File Completed!')
else
     ShowMessage('Copy File Failed!');

CopyFile函數還可以用與在網絡鄰居中的文件復制,使用上面的例子,可以將格式改為如下:

if CopyFile('//sh-sfis/Yun_Yue/yun_yue/Copytext.txt',pChar(ExtractFilePath(Application.ExeName) + '2.txt'),false) then
//此處函數的第三個參數設置成false,會將原來我的應用程序本目錄下存在的'2.txt'文件覆蓋掉
     ShowMessage('Copy File Completed!')
else
     ShowMessage('Copy File Failed!');

 

1:执行返回false原因是:
和源文件同名的目标文件已经存在,并且目标文件是只读属性。
2:还有可能是目标文件已经存在,并且正在被操作系统使用中。
3:CopyFile 是独占模式打开文件。如果要copy的文件已经被其他程序打开,CopyFile就会失败。

来自: http://hi.baidu.com/boxroom/blog/item/93c45efb0c378a1e6c22eb1b.html