私の最終目標は、関連するすべてのファイルをあるフォルダーから別のフォルダーにコピーすることです。たとえば、 がありC:\Users\Tool\Desktop\test\oldStuff
ます。フォルダoldStuff
には、いくつかのmp3、mp4、およびtxtファイルだけでなく、さらに多くのフォルダがあります。
ここで、1 GB より小さいすべてのmp4C:\Users\Tool\Desktop\test\New_Stuff_Less_than_a_Gig
ファイルを にコピーし、1 GB より大きい.mp4C:\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);
しかし、それは何もコピーしませんでした。