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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2010, 13:26   #1
603vvn
Новичок
Джуниор
 
Регистрация: 17.06.2010
Сообщений: 4
По умолчанию Необходимо подредактировать код.

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

Заранее благодарен!!!.


Сам код:
Код:
Код:


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;
603vvn вне форума Ответить с цитированием
Старый 17.06.2010, 13:55   #2
S@fer
Форумчанин
 
Аватар для S@fer
 
Регистрация: 29.01.2009
Сообщений: 411
По умолчанию

Убери строчку
Цитата:
Код:
RemoveDir(ExtractFileDir(sDir));
S@fer вне форума Ответить с цитированием
Старый 17.06.2010, 14:05   #3
603vvn
Новичок
Джуниор
 
Регистрация: 17.06.2010
Сообщений: 4
По умолчанию

Убирал, тогда программа не хочет удалять папки

т.е. все файлы удаляет кроме папок.
603vvn вне форума Ответить с цитированием
Старый 17.06.2010, 14:21   #4
Kotofff
Участник клуба
 
Аватар для Kotofff
 
Регистрация: 11.01.2009
Сообщений: 1,917
По умолчанию

Уважаемый(ая), 603vvn, а что означает ваш ник ?
А то тут представляете Правила есть и там пункт 1.1 ...
"Заряженному танку в дуло не смотрят" @Dekmer in WoT
Kotofff вне форума Ответить с цитированием
Старый 17.06.2010, 14:58   #5
603vvn
Новичок
Джуниор
 
Регистрация: 17.06.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Kotofff Посмотреть сообщение
Уважаемый(ая), 603vvn, а что означает ваш ник ?
А то тут представляете Правила есть и там пункт 1.1 ...
Ник означает: цифры это кабинет в котором я сижу а три буквы это Ф.И.О.

Всем спасибо за попытку помочь!!! Уже разобрался Вот выложу код может кому нибудь пригодится: необходимо было добавить строку.

Код:
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);
  
  If sDir <> MainsDir then

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

Последний раз редактировалось Stilet; 17.06.2010 в 16:20.
603vvn вне форума Ответить с цитированием
Старый 17.06.2010, 15:37   #6
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Код:
  If sDir <> MainsDir then
Вот это правильно!
VintProg вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подредактировать процедуру поиска файлов... Человек_Борща Общие вопросы Delphi 1 21.05.2010 23:55
подредактировать . Двухмерные массивы lilia2121 Помощь студентам 2 18.05.2010 09:40
Необходимо выбрать akim04 Компьютерное железо 4 16.05.2010 11:42
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37