Hej,
Jeg skal til at lave et program der kan finde alle filer af typen .jpg som er større end f.eks. 10kb i en forudbestemt mappe.
Jeg har bare ingen ide om hvordan man klarer dette rent teknisk.
Jeg kunne forestille mig at jeg skal have listet alle mapper og alle .jpg filer i hver mappe og så gå filerne efter, en-efter-en, for at undersøge deres størrelse. Der er også undermapper i mappen der skal søges igennem.
Er der nogen med nogle gode forslag til hvor jeg skal starte?
Mvh
Futterama
set på den her:
http://www.swissdelphicenter.com/en/showcode.php?id=154her er noget kode fra den:
procedure GetAllFiles(mask: string);
var
search: TSearchRec;
directory: string;
begin
directory := ExtractFilePath(mask);
// find all files
if FindFirst(mask, $23, search) = 0 then
begin
repeat
// add the files to the listbox
Form1.ListBox1.Items.Add(directory + search.Name);
Inc(Count);
until FindNext(search) <> 0;
end;
// Subdirectories/ Unterverzeichnisse
if FindFirst(directory + '*.*', faDirectory, search) = 0 then
begin
repeat
if ((search.Attr and faDirectory) = faDirectory) and (search.Name[1] <> '.') then
GetAllFiles(directory + search.Name + '\\' + ExtractFileName(mask));
until FindNext(search) <> 0;
FindClose(search);
end;
end;
variablen search af typen TSearchRec indeholder vistnok et felt som angiver størrelsen, sikkert search.size.
herefter der det blot at opstille nogle kriterier for sine filer, ex:
// add the files to the listbox
Form1.ListBox1.Items.Add(directory + search.Name);
ændres til(jeg har ikke testet det, men det er sådan du bør gøre)
// add the files to the listbox
// 10 * 1024 = størrelsen i kilobyte
if (search.Size >= (10*1024)) and (ExtractFileExt(search.Name) = 'jpg') then
begin
Form1.ListBox1.Items.Add(directory + search.Name);
end;
Casper