Алгоритм для поиска одинаковых файлов
Добавлено: 18.05.2008 16:58:54
- Код: Выделить всё
program find;
{$mode objfpc}
{$H+}
uses
SysUtils, Classes;
procedure ViewDir(Dir: string; FileName: string);
var
sr,sr1: TSearchRec;
FileTime,FileSize: Integer;
FileNames: TFileName;
begin
// Выводим список файлов
if FindFirst(IncludeTrailingPathDelimiter(Dir) + FileName, not faDirectory, sr) = 0 then
begin
writeln(IncludeTrailingPathDelimiter(Dir) + sr.Name);
while FindNext(sr) = 0 do
begin
writeln(IncludeTrailingPathDelimiter(Dir) + sr.Name);
end;
end;
FindClose(sr);
if FindFirst(IncludeTrailingPathDelimiter(Dir) + '*', faDirectory, sr) = 0 then
begin
if ((sr.Attr and faDirectory) <> 0) and (sr.Name <> '.') and (sr.Name <> '..') then
begin
ViewDir(IncludeTrailingPathDelimiter(Dir) + sr.Name, FileName);
end;
while FindNext(sr) = 0 do
begin
if ((sr.Attr and faDirectory) <> 0) and (sr.Name <> '.') and (sr.Name <> '..') then
begin
ViewDir(IncludeTrailingPathDelimiter(Dir) + sr.Name, FileName);
end;
end;
end;
FindClose(sr);
end;
begin
if ParamStr(1)='/?' then writeln(ParamStr(0),' [patch] /r /?');
if ParamStr(2)='/r' then ViewDir(copy(ParamStr(0),0,3), '*');
if ParamStr(1)='' then ViewDir('', '*');
readln;
end.
Программа должна находить одинаковые файлы(имя, размер, дата создания).
Если она запускается без параметров то она должна найти одинаковые файлы с места где лежит прога.
Если запускается с параметром /r то с корневого каталога.
Помогите кто знает как реализовать поиск одинаковых файлов