unit MainUnit; interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, FileCtrl, ShellAPI;
type TMainForm = class(TForm) Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var MainForm: TMainForm;
implementation
{$R *.DFM}
procedure TMainForm.Button1Click(Sender: TObject); var yDir: String; begin yDir:= ''; if SelectDirectory(yDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then Edit1.Text:= yDir; end;
procedure TMainForm.Button2Click(Sender: TObject); var mdDir: String; begin mdDir:= ''; if SelectDirectory(mdDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then Edit2.Text:= mdDir; end;
procedure TMainForm.Button3Click(Sender: TObject); var OPS: TSHFileOpStruct; FromBuf, ToBuf: Array[0..128]of Char; begin FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf FillChar(ToBuf, SizeOf(ToBuf), 0); //初始化数组ToBuf StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录 StrPCopy(ToBuf, PChar(Edit2.Text)); //将ToBuf填入目的目录 with OPS do begin Wnd:= Handle; wFunc:= FO_COPY; //进行复制 pFrom:= @FromBuf; PTo:= @ToBuf; fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; fAnyOperationsAborted:= False; hNameMappings:= nil; lpszProgressTitle:= nil; end; if SHFileOperation(OPS)= 0 then MessageBox(Handle, '复制成功!', '复制信息', MB_OK+ MB_ICONINFORMATION);
end;
procedure TMainForm.Button4Click(Sender: TObject); var OPS: TSHFileOpStruct; FromBuf: Array[0..128]of Char; begin FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录 with OPS do begin Wnd:= Handle; wFunc:= FO_DELETE; //进行删除 pFrom:= @FromBuf; pTo:= nil; fFlags:= FOF_NOCONFIRMATION; lpszProgressTitle:= '正在删除'; end; if SHFileOperation(OPS)= 0 then MessageBox(Handle, '删除成功!', '删除信息', MB_OK+ MB_ICONINFORMATION); end;
procedure TMainForm.Button5Click(Sender: TObject); var OPS: TSHFileOpStruct; FromBuf, ToBuf: Array[0..128]of Char; begin FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf FillChar(ToBuf, SizeOf(ToBuf), 0); //初始化数组ToBuf StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录 StrPCopy(ToBuf, PChar(Edit2.Text)); //将ToBuf填入目的目录 with OPS do begin Wnd:= Handle; wFunc:= FO_MOVE; //进行移动 pFrom:= @FromBuf; PTo:= @ToBuf; fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; fAnyOperationsAborted:= False; hNameMappings:= nil; lpszProgressTitle:= '正在移动'; end; if SHFileOperation(OPS)= 0 then MessageBox(Handle, '移动成功!', '移动信息', MB_OK+ MB_ICONINFORMATION);
end;
end.
|
请发表评论