Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сравнение папок 
:(
    Опции темы
Nutz
Дата 29.1.2010, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 11.9.2009

Репутация: нет
Всего: нет



Поставленая задача: сравнить содержимое двух папок (условно 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;


Может можно какие-то моменты упростить или что-то не учел. Вобщем, хотелось бы услышать критику. 

Это сообщение отредактировал(а) Nutz - 29.1.2010, 16:02
PM MAIL   Вверх
Frees
Дата 29.1.2010, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 9
Всего: 54



faAnyFile это не все файлы... может некоторые пропустить


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
chip_and_dayl
Дата 29.1.2010, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 603
Регистрация: 22.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 9



Frees
Как раз это ищет любой файл smile


--------------------
Фсё будет хорошо!!!
PM MAIL Skype   Вверх
Демо
Дата 29.1.2010, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 30
Всего: 50



Цитата(Nutz @  29.1.2010,  15:57 Найти цитируемый пост)
Может можно какие-то моменты упростить или что-то не учел. Вобщем, хотелось бы услышать критику. 


1. После FindFirst код нужно внести в блок try..finally..end
2. В процедуру лучше передавать ссылку на объект-список и заполнять его, а не писать form6... 




--------------------
    
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0418 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.