|
Windows API函數(shù) SHfileOperation(TSHFILEOPSTRUCT)的用法:
TSHFILEOPSTRUCT是指向SHFILEOPSTRUCT結(jié)構(gòu)體的指針,在Delphi中定義如下: Hwnd //顯示狀態(tài)信息窗口的句柄,一般是你的程序中的主窗體,看你怎么用了 wFunc //要執(zhí)行的操作 取值:FO_COPY 復制 FO_MOVE 移動 FO_Delete 刪除 pFrom //源文件或目錄 pTo //目標文件或目錄 fFlag //控制文件操作的標志 其中你感興趣的標志取值為: FOF_SILENT---不創(chuàng)建進度條 FOF_SIMPLEPROGRESS----顯示進度條對話框但不顯示文件名 FOF_NOCONFIRMATION-----操作過程中不顯示確認信息,相當與用戶選擇了"Yes to all" 其他的取值可以參考ShellAPI單元的參數(shù)定義(全E文的哦 ^_^) fAnyOperationsAborted //Boolean類型值,操作是否放棄 hNameMappings //文件名映射對象的句柄,很少用到,一般取nil lpszProgressTitle //進度條標題,注意僅在fFlag中指定了FOF_SIMPLEPROGRESS時才有效. 函數(shù)返回值為0表示操作成功
例如: 將C:\document目錄的文件復制到D盤"文檔"目錄下
Procedure Tform1.Button1Click(Sender:TObject) var OpStruc:TSHFileOpStruct; //定義OpStruc為操作結(jié)構(gòu)體指針 FromBuf,ToBuf:array[0..255] of char; //定義源路徑和目標路徑 Begin StrPcopy(FromBuf,Pchar('C:\document')); StrPcopy(FromBuf,Pchar('D:\文檔')); //設置源路徑和目標路徑 with OpStruc do //開始定義結(jié)構(gòu)體參數(shù) begin wnd:=handle; //定義本窗體句柄,表明操作在本窗體出現(xiàn) wFunc:=FO_COPY; //說明本次操作為復制 pFrom:=@FromBuf; //填源路徑字符 pTo:=@ToBuf; //填目標路徑字符 fFlag:=FOF_NOCONFIRMATION or FOF_SIMPLEPROGRESS //注意操作標志,如果你要讓進度條出現(xiàn)必須有FOF_SIMPLEPROGRESS值 fAnyOperationsAborted:=false; hNameMappings:=nil; lpszProgressTitle:=nil; end; if SHfileOperation(OpStruc)=0 then showmessage('復制完畢!'); end;
|