如何将多个文件从一个目录拷贝到另一个目录并改名(50分)

  • 主题发起人 主题发起人 freecobra
  • 开始时间 开始时间
F

freecobra

Unregistered / Unconfirmed
GUEST, unregistred user!
一个目录下有多个jpg格式图片文件,将它们的文件名逐个提取出来存为字符串,
再将图片逐个拷到另一个目录并改名,并将改名后的图片显示在一个image框里
 
if SaveDialog1.Execute then
begin
Distin1 := Copy(SaveDialog1.FileName,1,Length(SaveDialog1.FileName)-4);
Distin2 := Copy(SaveDialog1.FileName,Length(SaveDialog1.FileName)-4,Length(SaveDialog1.FileName));
FillChar(FromBuf,SizeOf(FromBuf),0);
FillChar(ToBuf,SizeOf(ToBuf),0);
StrPCopy(FromBuf,PChar(FileName+'/data'));
StrPCopy(ToBuf,PChar(distin1));
with OpStruc do
begin
Wnd := Handle;
wFunc := FO_COPY;
pFrom := @FromBuf;
pTo := @ToBuf;
fFlags := FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
SHFileOperation(OpStruc);
用整目录拷贝过去
 
有没有简单一些的方法,我觉得应该有,谁能帮帮我
如果用copyfileto,如何实现
 
1.Copy:
procedure CopyFiletoFile(SourceFileName,DestFileName:String);
begin
 with TMemoryStream.Create do
 try
 LoadFromFile(SourceFileName);
 SaveToFile(DestFileName);
 finally
 Free;
end;

2.Rename:
function RenameFile(const OldName, NewName: string): Boolean;

3.多个文件就用迭代的方法
 
//利用CopyFile函数
procedure TForm1.Button1Click(Sender: TObject);
var
sFromFileName,sToFileName: AnsiString;
begin
sFromFileName:='d:/temp/12.jpg';
sToFileName:='d:/test.jpg';
if CopyFile(PChar(sFromFileName),PChar(sToFileName),false) then
ShowMessage('文件复制完成!')
else
ShowMessage('文件复制时发生错误:'+IntToStr(GetLastError));
end;
 
多人接受答案了。
 
后退
顶部