文件(夹)复制、删除、重命名
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单元
// 删除目录
//------------------------------------------------------------------------------
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单元
相关文章推荐
- Android 关于文件及文件夹的创建 、删除、重命名、复制拷贝、添加内容、修改内容、读取内容
- C++ 文件的复制、删除、重命名
- Java文件IO操作工具类(复制、删除、重命名、创建路径),复制代码并创建FileControl类即可使用。
- ubuntu 新建、移动、重命名、复制、删除文件(夹)
- VC++获取文件名,移动、删除、重命名、复制文件
- VC 复制移动删除重命名文件文件夹 .
- php文件复制、重命名、删除操作
- vc文件复制和删除及移动和重命名
- ASP FSO文件操作函数代码(复制文件、重命名文件、删除文件、替换字符串)
- C++ 文件的复制、删除、重命名
- Java实现对于文件的多种操作,复制、删除、重命名、剪切文件、统计指定类型文件数等10个功能
- linux学习笔记(三) 复制、删除、移动、重命名文件(文件夹)命令
- Java对于文件的新建,重命名,删除,以及遍历,以及复制
- 批量文件操作命令行工具(复制、剪切、重命名、删除等)
- 自己写个Java的文件操作类,实现新建、复制、剪切、删除、重命名等操作
- Linux下复制、删除和重命名文件或文件夹
- MFC对文件文件夹转移、删除、重命名、复制
- [API学习]删除、复制、重命名、移动文件
- ASP FSO操作文件(复制文件、重命名文件、删除文件、替换字符
- 文件操作 复制移动删除重命名文件文件夹(转帖)