03. september 2014 - 08:19Der er
11 kommentarer og 1 løsning
Folder dato ændring
Jeg har en lille opgave som går ud på at holde styr på nogle mapper og som så skal slettes efter 1 måned. Jeg havde en lille ide om at man kunne bruge "Date modified", men det er kun indholdet i den givende mappe. Hvis der findes en under mappe og der sker ændringer i den mappe, vil toplevel mappens dato ikke ændre sig.
Hvordan kan man klare den sag, hvis der findes mange under mapper på under mappe?
Er ikke lige i nærheden af en computer med Delphi på, men nedenstående metode har jeg brugt til at rippe samtlige filnavne i en mappe. Den medtager underfoldere rekursivt, hvis IncludeSubDirs er TRUE.
function ExtractFileNames(Dir: string; IncludeSubDirs: boolean): TStringList;
procedure FindAll(const Dir: String; Attr: Integer; List: TStrings); var Res: TSearchRec; EOFound: Boolean; begin EOFound:= False; if FindFirst(Dir, Attr, Res) < 0 then Exit else begin while not EOFound do begin if (Res.Attr and Attr) <> 0 then begin List.Add(Res.Name) ; end; EOFound:= FindNext(Res) <> 0; end; end; FindClose(Res) ; end;
var ADirectoryList: TStringList; i, j: integer; AFile: TStringList; tempResult: TStringList; begin Result := TStringList.Create; ADirectoryList := TStringList.Create;
FindAll(Dir + '*.*', faAnyFile, Result);
if IncludeSubDirs then begin FindAll(Dir + '*', faDirectory, ADirectoryList); if ADirectoryList.Count > 0 then begin for i := 0 to ADirectoryList.Count - 1 do begin if (ADirectoryList.Strings[i] <> '.') and (ADirectoryList.Strings[i] <> '..') then begin tempResult := ExtractFileNames(Dir + ADirectoryList.Strings[i] + '\', IncludeSubDirs);
for j := 0 to tempResult.Count - 1 do Result.Add(tempResult[j]);
tempResult.Free; end; end; end; end;
// Remove '..' and '.' and directories for i := Result.Count - 1 downto 0 do if (Result[i] = '..') or (Result[i] = '.') or (AnsiPos('.', Result[i]) = 0) then Result.Delete(i);
Jeg siger ikke, at den er genial, men den sene aften, hvor jeg skulle bruge en liste over navnene på samtlige mp3-filer på min NAS (lang historie), der fungerede den helt efter hensigten ;-)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.