Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
ВнизCompare Files Найти похожие ветки
← →
Scot Storch (2010-01-29 16:04) [0]Поставленая задача: сравнить содержимое двух папок (условно Target и Source). Вывести список файлов, которые есть в папке Target но нет в папке Source.
P.S. Если в папке Target лежит файл как Target\1\1.dat а в папке Source он находится как Source\1.dat считать, что файла нет.
Сделал так:
procedure ScanDirTarget(const sDirTarget, sDirSource: string);
var
nRes: Integer;
sFileFound: string;
sRec: TSearchRec;
begin
nRes := FindFirst(sDirTarget + "\*.*", faAnyFile, sRec);
while nRes = 0 do
begin
if (sRec.Name <> ".") and (sRec.Name <> "..") then
begin
if (sRec.Attr and faDirectory) = faDirectory then
ScanDirTarget(sDirTarget + "\" + sRec.Name, sDirSource + "\" +
sRec.Name)
else
begin
sFileFound := sDirSource + "\" + sRec.Name;
if not FileExists(sFileFound) then
form6.ListBox3.Items.Add(sFileFound)
end;
end;
nRes := FindNext(sRec);
end;
FindClose(sRec);
end;
Может можно какие-то моменты упростить или что-то не учел. Вобщем, хотелось бы услышать критику.
← →
DVM © (2010-01-29 16:09) [1]
> Вобщем, хотелось бы услышать критику.
> form6.ListBox3.Items.Add(sFileFound)
нехорошо
лучше так:
procedure ScanDirTarget(const sDirTarget, sDirSource: string; AList: TStrings);
...
AList.Add(sFileFound);
← →
Virgo_Style © (2010-01-29 16:15) [2]Вместо ... +"\" я бы написал IncludeTrailingPathDelimiter(...)
try-finally вроде недавно где-то обсуждалось применительно именно к findfirst...findclose.
← →
12 © (2010-01-29 16:16) [3]ну а где сравнение с 1.dat ?
← →
Игорь Шевченко © (2010-01-29 16:49) [4]а нафиг кучу веток заводить ?
http://delphimaster.net/view/2-1264681015/
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.03.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c