Моя конечная цель - скопировать все соответствующие файлы из одной папки в другую. Так, например. у нас есть C:\Users\Tool\Desktop\test\oldStuff
. В папке oldStuff
у нас есть еще папки, а также несколько файлов mp3, mp4 и txt.
Теперь я хотел бы скопировать все файлы mp4 размером менее 1 ГБ в C:\Users\Tool\Desktop\test\New_Stuff_Less_than_a_Gig
и файлы .mp4 размером более 1 ГБ в 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);
но ничего не копировал.
*
в обоих местах, где вы используетеSameText
. Их нет в моем коде в моем ответе, и они не принадлежат вашему.*.txt
не является допустимым расширением файла, аExtractFileExt
возвращает расширение файла.*.txt
никогда не будет тем же текстом, что и*.txt
, потому что это разные тексты. - person Ken White   schedule 22.03.2015