Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2007, 15:31   #1
Viten2
Пользователь
 
Регистрация: 11.01.2007
Сообщений: 11
По умолчанию удалить файлы и папки

Люди! Помогите!!!
Надо удалить папку вместе с содержимым. Внутри файлы и папки. Какие заранее неизвесто - могут меняться. В папках также могут быть файлы и папки и т.д.
Как это сделать?
Viten2 вне форума Ответить с цитированием
Старый 18.01.2007, 11:51   #2
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Код:
function MyRemoveDir(sDir : string) : Boolean;
var
  iIndex: Integer;
  SearchRec: TSearchRec;
  sFileName: string;
begin
  Result := False;
  sDir := sDir + '\*.*';
  iIndex := FindFirst(sDir, faAnyFile, SearchRec);

  while iIndex = 0 do
  begin
    sFileName := ExtractFileDir(sDir)+'\'+SearchRec.name;
    if SearchRec.Attr = faDirectory then
    begin
      if (SearchRec.name <> '' ) and (SearchRec.name <> '.') and
      (SearchRec.name <> '..') then
        MyRemoveDir(sFileName);
    end
    else
    begin
      if SearchRec.Attr <> faArchive then
        FileSetAttr(sFileName, faArchive);
      if not DeleteFile(sFileName) then
        ShowMessage('Could NOT delete ' + sFileName);
    end;
    iIndex := FindNext(SearchRec);
  end;

  FindClose(SearchRec);
  RemoveDir(ExtractFileDir(sDir));
  Result := True;
end;

Последний раз редактировалось zetrix; 21.01.2007 в 08:56.
zetrix вне форума Ответить с цитированием
Старый 20.01.2007, 10:16   #3
Viten2
Пользователь
 
Регистрация: 11.01.2007
Сообщений: 11
По умолчанию

СПАСИБО!!! Работает.
Viten2 вне форума Ответить с цитированием
Старый 17.06.2010, 13:08   #4
603vvn
Новичок
Джуниор
 
Регистрация: 17.06.2010
Сообщений: 4
По умолчанию

Смотрю тема очень старая, но если кому не трудно мне нужен этот код, но мне нужно удалить всё кроме самой папки которую указываю.

Пожалуйста помогите.

Заранее благодарен.
603vvn вне форума Ответить с цитированием
Старый 17.06.2010, 14:58   #5
MyIE
Форумчанин
 
Аватар для MyIE
 
Регистрация: 02.01.2010
Сообщений: 127
По умолчанию

Код:
function MyRemoveDir(sDir : string) : Boolean;
var
  iIndex: Integer;
  SearchRec: TSearchRec;
  sFileName: string;
begin
  Result := False;
  sDir := sDir + '\*.*';
  iIndex := FindFirst(sDir, faAnyFile, SearchRec);

  while iIndex = 0 do
  begin
    sFileName := ExtractFileDir(sDir)+'\'+SearchRec.name;
    if SearchRec.Attr = faDirectory then
    begin
      if (SearchRec.name <> '' ) and (SearchRec.name <> '.') and
      (SearchRec.name <> '..') then
        MyRemoveDir(sFileName);
    end
    else
    begin
      if SearchRec.Attr <> faArchive then
        FileSetAttr(sFileName, faArchive);
      if not DeleteFile(sFileName) then
        ShowMessage('Could NOT delete ' + sFileName);
    end;
    iIndex := FindNext(SearchRec);
  end;

  FindClose(SearchRec);
  //RemoveDir(ExtractFileDir(sDir));
  Result := True;
end;
0_o
MyIE вне форума Ответить с цитированием
Старый 12.08.2011, 17:42   #6
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

Цитата:
Сообщение от zetrix Посмотреть сообщение
Код:
function MyRemoveDir(sDir : string) : Boolean;
var
  iIndex: Integer;
  SearchRec: TSearchRec;
  sFileName: string;
begin
  Result := False;
  sDir := sDir + '\*.*';
  iIndex := FindFirst(sDir, faAnyFile, SearchRec);

  while iIndex = 0 do
  begin
    sFileName := ExtractFileDir(sDir)+'\'+SearchRec.name;
    if SearchRec.Attr = faDirectory then
    begin
      if (SearchRec.name <> '' ) and (SearchRec.name <> '.') and
      (SearchRec.name <> '..') then
        MyRemoveDir(sFileName);
    end
    else
    begin
      if SearchRec.Attr <> faArchive then
        FileSetAttr(sFileName, faArchive);
      if not DeleteFile(sFileName) then
        ShowMessage('Could NOT delete ' + sFileName);
    end;
    iIndex := FindNext(SearchRec);
  end;

  FindClose(SearchRec);
  RemoveDir(ExtractFileDir(sDir));
  Result := True;
end;
ребят подскажите, вызываю функцию так

procedure TForm1.Button1Click(Sender: TObject);
begin
MyRemoveDir(memo1.Lines[0]);
end;

в мемо прописываю полный путь естественно к папке, если папки нет, хотелось бы что выводило сообщение, и если папки удаленна! помогите!

p.s уважаемые модераторы,извените за то что не воспользовался тегом, для кода, инет не позваляет!
hacknet вне форума Ответить с цитированием
Старый 12.08.2011, 18:07   #7
DenNik2006
Пользователь
 
Аватар для DenNik2006
 
Регистрация: 27.07.2011
Сообщений: 71
По умолчанию

Цитата:
Сообщение от hacknet Посмотреть сообщение
ребят подскажите, вызываю функцию так

procedure TForm1.Button1Click(Sender: TObject);
begin
MyRemoveDir(memo1.Lines[0]);
end;

в мемо прописываю полный путь естественно к папке, если папки нет, хотелось бы что выводило сообщение, и если папки удаленна! помогите!

p.s уважаемые модераторы,извените за то что не воспользовался тегом, для кода, инет не позваляет!
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // проверяем наличие папки
  if DirectoryExist(memo1.Lines[0]) then
  MyRemoveDir(memo1.Lines[0]) else ShowMessage('Dir not found!');
end;
Техника несовершенна: компьютеру, чтобы прийти в себя, нужно три пальца, человеку - всего два!
DenNik2006 вне форума Ответить с цитированием
Старый 12.08.2011, 19:04   #8
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

спасибо! разобрался

ребят а подскажите можно ли удалить папку, к примеру с командой в memo "del и полный путь" т.е если в memo сначало прописано del а потом сразу полный путь и токо тогда удалиться папка?

Последний раз редактировалось Stilet; 14.08.2011 в 16:53.
hacknet вне форума Ответить с цитированием
Старый 13.08.2011, 12:36   #9
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

сделай так:
Код:
path:=copy(memo1.lines[0], 5 {"del }, length(memo1.lines[0]) - 5);
ZuBy вне форума Ответить с цитированием
Старый 13.08.2011, 13:01   #10
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

а не могли бы Вы привести полный код при нажатии кнопки, у меня не выходит?
зарание спасибо!
hacknet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытые файлы и папки в OpenDialog Veiron Общие вопросы Delphi 6 05.03.2008 09:03
Как удалить файлы. Борис2 Паскаль, Turbo Pascal, PascalABC.NET 3 15.12.2007 16:00
Показывать-не показывать скрытые файлы и папки... Романнн Свободное общение 5 07.11.2007 13:16
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 21:36