您的位置:首页 > 其它

文件(夹)复制、删除、重命名

2008-10-15 22:46 453 查看
//------------------------------------------------------------------------------

// 删除目录

//------------------------------------------------------------------------------

function DelDirectory(const Source: string): boolean;

var

fo: TSHFILEOPSTRUCT;

begin

FillChar(fo, SizeOf(fo), 0);

with fo do

begin

Wnd := 0;

wFunc := FO_DELETE;

pFrom := PChar(source + #0);

pTo := #0#0;

fFlags := FOF_NOCONFIRMATION + FOF_SILENT;

end;

Result := (SHFileOperation(fo) = 0);

end;

//------------------------------------------------------------------------------

// 复制目录

//------------------------------------------------------------------------------

function CopyDirectory(const Source, Dest: string): boolean;

var

fo: TSHFILEOPSTRUCT;

begin

FillChar(fo, SizeOf(fo), 0);

with fo do

begin

Wnd := 0;

wFunc := FO_COPY;

pFrom := PChar(source + #0);

pTo := PChar(Dest + #0);

fFlags := FOF_NOCONFIRMATION + FOF_NOCONFIRMMKDIR;

end;

Result := (SHFileOperation(fo) = 0);

end;

//------------------------------------------------------------------------------

// 重新命名目录 RenDirectory('d:/wt2','d:/bcde');

//------------------------------------------------------------------------------

function RenDirectory(const OldName, NewName: string): boolean;

var

fo: TSHFILEOPSTRUCT;

begin

FillChar(fo, SizeOf(fo), 0);

with fo do

begin

Wnd := 0;

wFunc := FO_RENAME;

pFrom := PChar(OldName + #0);

pTo := pchar(NewName + #0);

fFlags := FOF_NOCONFIRMATION + FOF_SILENT;

end;

Result := (SHFileOperation(fo) = 0);

end;

//------------------------------------------------------------------------------

// 复制多个文件

//------------------------------------------------------------------------------

function CopyFiles(const Source, Dest: string): boolean;

var

fo: TSHFILEOPSTRUCT;

begin

FillChar(fo, SizeOf(fo), 0);

with fo do

begin

Wnd := 0;

wFunc := FO_COPY;

pFrom := @source[1];

pTo := pchar(dest);

fFlags := FOF_NOCONFIRMATION + FOF_NOCONFIRMMKDIR;

end;

Result := (SHFileOperation(fo) = 0);

end;

procedure TForm1.Button1Click(Sender: TObject);

var

str: string;

i: integer;

begin

if opendialog1.Execute then

begin

for i := 0 to OpenDialog1.Files.Count - 1 do

str := str + OpenDialog1.Files.strings[i] + #0;

showmessage(str);

str := str + #0;

CopyFiles(str, 'd:/temp');

end;

end;

注:需要引用ShellAPI单元
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐