Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1262873481
anton773
2010-01-07 17:11
2010.03.28
Пожиратель траффика!!!


2-1264675704
Starraider
2010-01-28 13:48
2010.03.28
Выравнивание колонок StringGrid


15-1262295022
Юрий
2010-01-01 00:30
2010.03.28
С днем рождения ! 1 января 2010 пятница


2-1264497065
Starraider
2010-01-26 12:11
2010.03.28
StringGrid vs Enter


6-1215346193
Plotnick
2008-07-06 16:09
2010.03.28
Как подключить нескольких клиентов?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский