我的最终目标是将所有相关文件从一个文件夹复制到另一个文件夹。所以例如我们有C:\Users\Tool\Desktop\test\oldStuff
。在文件夹oldStuff
中,我们有更多文件夹以及一些mp3、mp4和txt文件。
现在我想做的是将所有小于 GB的mp4文件复制到.mp4C:\Users\Tool\Desktop\test\New_Stuff_Less_than_a_Gig
文件,将大于 GB的.mp4文件复制到.C:\Users\Tool\Desktop\test\New_STuff_Bigger_than_a_Gig
我虽然这很容易,但我错了。到目前为止有这个,暂时不用担心文件类型所以就做了*.*
procedure TForm4.Button1Click(Sender: TObject);
var
f: TSearchRec;
Dir: string;
begin
if not SelectDirectory(Dir,widestring(Dir),Dir) then Exit;
FileMode:=0;
if FindFirst(Dir+'\*.*',faAnyFile,f) = 0 then
repeat
try
if (f.Attr and faDirectory ) < $00000008 then
CopyFile(PChar(Dir+'\'+f.Name),PChar
('C:\Users\Tool\Desktop\test\new\'+f.Name),false);
except
on e: exception do
ShowMessage(E.Message);
end;
until findNext(f) <> 0
end;
这将复制所选文件夹中的任何内容,但不会从所选文件夹中的文件夹中复制任何内容。例如,如果我们拥有C:\Users\Tool\Desktop\test\oldStuff\movie.mp4
它将复制Movie.mp4
文件,但如果我们拥有C:\Users\Tool\Desktop\test\oldStuff\movies\Movie.mp4
它将不会复制Movie.mp4
文件。我虽然我可以做这样的事情
CopyFile.size < 1000 (PChar('C:\Users\Tool\Desktop\test\oldStuff\*.*'+f.Name),
PChar('C:\Users\Tool\Desktop\test\new_Stuff\'+f.Name),false)
甚至只是
CopyFile (PChar('C:\Users\Tool\Desktop\test\old\*.*'+f.Name),
PChar('C:\Users\Tool\Desktop\test\new\'+f.Name),false);
但它没有复制任何东西。