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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск и архивирование директории, поиск по всему винчестеру. 
:(
    Опции темы
MaGICaN
  Дата 20.7.2007, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.
Подскажите пожалуйста как мне реализовать следующую задачу:
Необходимо найти файл(.txt), определить дирректорию в которой он находится и
заархивировать ее(директорию) в архив.
Заранее спасибо.


PM MAIL   Вверх
_hunter
Дата 20.7.2007, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



1 (поиск) ищеш по форуму "FindFirst"
2 (архивация) ищеш на форуме или "архивация" или "VclZip"


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
MaGICaN
Дата 20.7.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



1 как через файнд некст искать в отдельном каталоге это понятно но как заставить прогу искать по всему харду? smile  
2 про архивацию можно поподробнее? и еше эту функцию VclZip я нашел версии 2.10 но установить несмог, если кто сможнт помочь буду только рад. smile 

Это сообщение отредактировал(а) MaGICaN - 20.7.2007, 16:42
PM MAIL   Вверх
_hunter
Дата 20.7.2007, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата(MaGICaN @  20.7.2007,  16:33 Найти цитируемый пост)
1 как через файнд некст искать в отдельном каталоге это понятно но как заставить прогу искать по всему харду? smile  

рекурсивно перебираем все папки, начиная от корня. если проще говоря: находим все папки корня, находим все папки в первой папке, находим все папки...
за подробностями -- в поиск (обсуждалось примерно столько же раз сколько и простой поиск)

Цитата(MaGICaN @  20.7.2007,  16:33 Найти цитируемый пост)
про архивацию можно поподробнее?

можно. что конкретно интересует?

Цитата(MaGICaN @  20.7.2007,  16:33 Найти цитируемый пост)
но установить несмог

в чем это выражается? сопроводительную документацию читал?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
MaGICaN
Дата 21.7.2007, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



>рекурсивно перебираем все папки, начиная от корня. если проще говоря: находим все папки корня, находим все папки в первой папке, находим все папки...
за подробностями -- в поиск (обсуждалось примерно столько же раз сколько и простой поиск)

Немог бы ты показать пример поиски файла по винчестеру и определение адреса дирректории в которой он находится, я долго читал форум но ничего подобного, по моему вопросу найти несмог.


>в чем это выражается? сопроводительную документацию читал?


В сопроводительной документации только описание компонента.
Я знаю точно что snowy работал с этим компонентом(компонентом архивации), таккак он выкладывал на него ссыль на этом форуме, но достучаться до него немогу, если кто нибудь еше работал с этим компонентом плз отпишитесь тут как его устанавливать.

Заранее большое спасибо.

Это сообщение отредактировал(а) MaGICaN - 21.7.2007, 12:50
PM MAIL   Вверх
ne0n
Дата 21.7.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PlayBoy
**


Профиль
Группа: Участник
Сообщений: 733
Регистрация: 5.8.2005
Где: Н.Новгород

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



Цитата(MaGICaN @  21.7.2007,  12:50 Найти цитируемый пост)
Немог бы ты показать пример поиски файла по винчестеру и определение адреса дирректории в которой он находится, я долго читал форум но ничего подобного, по моему вопросу найти несмог.


а че тут показывать как искать по дирректории ты знаешь, а по всему винчестеру не чуть не сложнее, тупо ищешь все локальники и уже ищешь по ним
Код



procedure ScanDir(Dir: string);
var
  SearchRec: TSearchRec;
  ras: string;
  sum: Dword;
begin
 if Dir <> '' then if Dir[length(Dir)] <> '\' then Dir := Dir + '\';
  // Осуществляем поиск по всем вложенным папкам
  if FindFirst(Dir + '*.*', faAnyFile, SearchRec) = 0 then
    //Ищем файлы с любым расширением
    repeat // пошел цикл
      //если имеет название "." или "..", тогда продолжаем
      if (SearchRec.name = '.') or (SearchRec.name = '..') then Continue;
      // если найден каталог то...
      if (SearchRec.Attr and faDirectory) <> 0 then
        ScanDir(Dir + SearchRec.name) //то проверим и его
      Else // иначе мы поймали файл
      begin
        Form1.label3.caption := dir + SearchRec.Name;//ПОЛНЫЙ ПУть файла
      // Можно в переменную забить а не в лабел
        ras := AnsiLowerCase(ExtractFileExt(dir + SearchRec.name));
        // Узнаем расширение найденного файла
        if (ras = '.txt')  then
        // И если оно  *.txt то...
        begin
        
       //АРХИВИРОВНИЕ!!!
  
           
        end;
      end;
      Application.ProcessMessages;
      if stopScan then // если stopScan=true , то ...
      begin
        Exit; // останавливаем поиск
      end;
    until FindNext(SearchRec) <> 0; 
   //Продолжаем поиск до тех пор, пока результат работы функции не равен нулю
  FindClose(SearchRec);
// завершаем поиск, освобождаем память, выделенный системой под него
end;  

...
procedure GetHDD;
var
  Drive: Char; //Буква диска
  n: byte; // счетчик дисков
  lst: TStringList; // переменная в которой будут храниться список дисков
const
  pref = ':\';
begin
  lst := TStringList.Create;
  lst.Clear;
  for Drive := 'A' to 'Z' do // перебираем буквы дисков
    if GetDriveType(PChar(Drive + pref)) = DRIVE_FIXED then 
    // и если диск не съемный то...
      lst.Add(Drive + pref); 
   //добавим в список дисков, которые нужно сканировать
  for n := 0 to (lst.Count - 1) do // по очереди начинаем сканировать
    ScanDir(lst.Strings[n]); // ScanDir – наша процедуру поиска файлов
  lst.Free;
end;



а по поводу архивации чем Zlib не подходит и примеров к нему полно...


Это сообщение отредактировал(а) ne0n - 21.7.2007, 14:55
PM MAIL ICQ   Вверх
MaGICaN
Дата 21.7.2007, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я нашел описание ZLib но вот только немогу понять как им пользоваться.
ссыль на него _http://pblog.ru/?p=67.
непонятно что там и как вызывается, я раньше за рамни дельфи никогда невыходил тоесть ниразу неписал программу которая использует сторонние файлы.
сори за ламерский вопрос  :-[ 


Это сообщение отредактировал(а) MaGICaN - 21.7.2007, 17:16
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

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

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

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

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

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


 




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


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

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