Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.06.2012, 13:56
Hint_reg Hint_reg вне форума
Прохожий
 
Регистрация: 15.06.2012
Сообщения: 9
Репутация: 10
По умолчанию Работа с каталогами в дельфи

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Fo : TSHFileOpStruct;
buffer : array[0..4096] of char;
p : pchar;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
p := StrECopy(p, 'C:\Key2') + 1;
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Handle;
Fo.wFunc := FO_DELETE;
Fo.pFrom := @Buffer;
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or
(Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Cancelled')
end;
Но тут есть одна проблема. Каталог Key2 которую я хочу удалить, может находится и в другом месте. Как можно сделать так чтобы прога нашел всех каталогов key2 и удалил их?
Ответить с цитированием
  #2  
Старый 21.06.2012, 14:21
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Удалить все папки с определенным именем? Запустить поиск по всем папкам и удалить те, у которых имя совпадает.
Только не пойму смысла: можно покалечить другие программы.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 21.06.2012, 15:48
Hint_reg Hint_reg вне форума
Прохожий
 
Регистрация: 15.06.2012
Сообщения: 9
Репутация: 10
По умолчанию Работа с каталогами в дельфи1

Код:
Procedure ScanDir(StartDir: String; Mask:string; List:TStrings);
{ Процедура выводит список директории в список List, начиная с директории, указанной в StartDir. Mask - маска для получения файлов 
Источник delphi.mastak.ru
© А. Подгорецкий }
Var SearchRec : TSearchRec;
Begin
  IF Mask ='' then Mask:= '*.*';
  IF StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\';
  IF FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
    Begin
     Repeat
        { Чтобы выполнение "не подвисало" }
      Application.ProcessMessages;
      IF (SearchRec.Attr and faDirectory) <> faDirectory then 
         List.Add(StartDir + SearchRec.Name) else 
          IF (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
        Begin
          List.Add(StartDir + SearchRec.Name + '\');
            { Рекурсивный вызов }
          ScanDir(StartDir + SearchRec.Name + '\',Mask,List);
        End;
     Until FindNext(SearchRec) <> 0;
     FindClose(SearchRec);
   End; {IF}
end;

А где здесь можно прописать имя папки которую надо искать?

Последний раз редактировалось Aristarh Dark, 21.06.2012 в 16:47.
Ответить с цитированием
  #4  
Старый 21.06.2012, 16:19
Pyro Pyro вне форума
Так проходящий
 
Регистрация: 18.07.2011
Сообщения: 805
Версия Delphi: 7Lite
Репутация: 6063
По умолчанию

во входных параметрах
Ответить с цитированием
  #5  
Старый 21.06.2012, 19:49
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Не нужно плодить одинаковые темы.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:34.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025