1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
XPManifest1: TXPManifest;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
const
// Fichiers à rechercher
Files: array[0..60] of string = ('***', '***', '***', (...));
implementation
{$R *.dfm}
{$WARN SYMBOL_PLATFORM OFF} // Pour éviter l'avertissement sur FindData.
procedure ScruterDossiers(Folder: string);
// Chercher si les fichers (Tableau Files) existe dans le dossier
procedure SearchInFolder;
var
I: Integer;
F : TextFile;
begin
for I := Low(Files) to High(Files) do
if FileExists(Folder + Files[i]) then
begin
Form1.Memo1.Lines.Add(Folder + Files[i] + ': trouvé !');
WriteLn(F, Folder + Files[i] + ': trouvé !');
end;
end;
var
S: TSearchRec;
begin
Folder := IncludeTrailingPathDelimiter(Folder);
// Rechercher dans le dossier
SearchInFolder;
// Isoler et traiter les sous-dossiers
if FindFirst(Folder + '*.*', faAnyFile, S) = 0 then
begin
repeat
// Ignorer les . et ..
if (S.Name <> '.') and (s.Name <> '..') then
begin
if (S.Attr and faDirectory) = faDirectory then
// Si sous-dossier: appel récursif
ScruterDossiers(Folder + S.FindData.cFileName);
end;
// Recherche fichier du suivant
until FindNext(S) <> 0;
FindClose(S);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
F: TextFile;
begin
Memo1.Lines.Clear;
Memo1.Lines.BeginUpdate;
Button1.Enabled := False;
Screen.Cursor := crHourGlass;
try
ChDir(IncludeTrailingPathDelimiter(GetEnvironmentVariable('HOMEDRIVE')));
AssignFile(F, 'Rapport.txt'); // Ouverture
Rewrite(F);
ScruterDossiers(GetEnvironmentVariable('HOMEDRIVE'));
finally
Button1.Enabled := True;
Memo1.Lines.EndUpdate;
Screen.Cursor := crDefault;
CloseFile(F);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.MessageBox(*****************,
'Quitter',MB_OK);
Application.Terminate;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
end;
end. |
Partager