程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 如何實現目錄的復制、刪除和移動

如何實現目錄的復制、刪除和移動

編輯:Delphi

如何實現目錄的復制、刪除和移動,當你選擇完源文件和目的目錄後,就要以選擇窗口上的幾個按鈕,來復制、刪除、移動所選的文件夾,Delphi文件系統操作的例子吧,叫做FSO。可學習下Delphi如何建立復制對象、刪除對象等基礎操作:

vIEw source print? 001 unit MainUnit; 002 interface 003 uses 004   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 005   StdCtrls, FileCtrl, ShellAPI; 006 type 007   TMainForm = class(TForm) 008     Label1: TLabel; 009     Label2: TLabel; 010     Edit1: TEdit; 011     Edit2: TEdit; 012     Button1: TButton; 013     Button2: TButton; 014     Button3: TButton; 015     Button4: TButton; 016     Button5: TButton; 017     procedure Button1Click(Sender: TObject); 018     procedure Button2Click(Sender: TObject); 019     procedure Button3Click(Sender: TObject); 020     procedure Button4Click(Sender: TObject); 021     procedure Button5Click(Sender: TObject); 022   private 023     { Private declarations } 024   public 025     { Public declarations } 026   end; 027 var 028   MainForm: TMainForm; 029 implementation 030 {$R *.DFM} 031 procedure TMainForm.Button1Click(Sender: TObject); 032 var 033   yDir: String; 034 begin 035   yDir:= ''; 036   if SelectDirectory(yDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0then 037     Edit1.Text:= yDir; 038 end; 039 procedure TMainForm.Button2Click(Sender: TObject); 040 var 041   mdDir: String; 042 begin 043   mdDir:= ''; 044   if SelectDirectory(mdDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0then 045     Edit2.Text:= mdDir; 046 end; 047 procedure TMainForm.Button3Click(Sender: TObject); 048 var 049   OPS: TSHFileOpStruct; 050   FromBuf, ToBuf: Array[0..128]of Char; 051 begin 052   FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化數組FromBuf 053   FillChar(ToBuf, SizeOf(ToBuf), 0); //初始化數組ToBuf 054   StrPCopy(FromBuf, PChar(Edit1.Text)); //將FromBuf填入源目錄 055   StrPCopy(ToBuf, PChar(Edit2.Text)); //將ToBuf填入目的目錄 056   with OPS do 057     begin 058       Wnd:= Handle; 059       wFunc:= FO_COPY; //進行復制 060       pFrom:= @FromBuf; 061       PTo:= @ToBuf; 062       fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; 063       fAnyOperationsAborted:= False; 064       hNameMappings:= nil; 065       lpszProgressTitle:= nil; 066     end; 067   if SHFileOperation(OPS)= 0 then 068     MessageBox(Handle, '復制成功!''復制信息', MB_OK+ MB_ICONINFORMATION); 069 end; 070 procedure TMainForm.Button4Click(Sender: TObject); 071 var 072   OPS: TSHFileOpStruct; 073   FromBuf: Array[0..128]of Char; 074 begin 075   FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化數組FromBuf 076   StrPCopy(FromBuf, PChar(Edit1.Text)); //將FromBuf填入源目錄 077   with OPS do 078      begin 079        Wnd:= Handle; 080        wFunc:= FO_DELETE; //進行刪除 081        pFrom:= @FromBuf; 082        pTo:= nil; 083        fFlags:= FOF_NOCONFIRMATION; 084        lpszProgressTitle:= '正在刪除'; 085      end; 086   if SHFileOperation(OPS)= 0 then 087     MessageBox(Handle, '刪除成功!''刪除信息', MB_OK+ MB_ICONINFORMATION); 088 end; 089 procedure TMainForm.Button5Click(Sender: TObject); 090 var 091   OPS: TSHFileOpStruct; 092   FromBuf, ToBuf: Array[0..128]of Char; 093 begin 094   FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化數組FromBuf 095   FillChar(ToBuf, SizeOf(ToBuf), 0); //初始化數組ToBuf 096   StrPCopy(FromBuf, PChar(Edit1.Text)); //將FromBuf填入源目錄 097   StrPCopy(ToBuf, PChar(Edit2.Text)); //將ToBuf填入目的目錄 098   with OPS do 099     begin 100       Wnd:= Handle; 101       wFunc:= FO_MOVE;  //進行移動 102       pFrom:= @FromBuf; 103       PTo:= @ToBuf; 104       fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; 105       fAnyOperationsAborted:= False; 106       hNameMappings:= nil; 107       lpszProgressTitle:= '正在移動'; 108     end; 109   if SHFileOperation(OPS)= 0 then 110     MessageBox(Handle, '移動成功!''移動信息', MB_OK+ MB_ICONINFORMATION); 111 end; 112 end.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved