Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Удаление содержимого каталога

Delphi , Файловая система , Директории



Автор: demon-777
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> 
Зависимости: Windows, SysUtils, Classes, Masks
Автор:       demon-777, demon-777@yandex.ru, Питер
Copyright:   Dimka Maslov
Дата:        26 мая 2002 г.
***************************************************** }

procedure DeleteFiles(Path: string);
var
  Mask: string;
  SearchRec: TSearchRec;
  FindResult: Integer;
  List: TStringList;
  i: Integer;
begin
  Mask := ExtractFileName(Path);
  if Mask = '' then
    Mask := '*.*';
  Path := ExtractFilePath(Path);
  if Path = '' then
    Path := IncludeTrailingBackslash(GetCurrentDir);
  List := TStringList.Create;
  try
    FindResult := FindFirst(Path + '*.*', faAnyFile, SearchRec);
    try
      while FindResult = 0 do
        with SearchRec do
        begin
          if ((Attr and faDirectory) = 0) and MatchesMask(Name, Mask) then
            List.Add(Name);
          FindResult := FindNext(SearchRec);
        end;
      for i := 0 to List.Count - 1 do
        DeleteFile(Path + List[i]);
    finally
      FindClose(SearchRec);
    end;
  finally
    List.Free;
  end;
end;

Программный код на языке Delphi для удаления содержимого директории:

Зависимости Код требует установки следующих зависимостей: 1. Windows - встроенная зависимость для любого приложения Windows. 2. SysUtils - стандартная единица Delphi, предоставляющая различные функции полезности. 3. Classes - еще одна стандартная единица, предоставляющая классы и интерфейсы для объектно-ориентированного программирования. 4. Masks - это не часть стандартной дистрибуции Delphi, поэтому предполагается, что это custom-made unit.

Автор и информация о правах Код был написан demon-777 и Piter, а права на него принадлежат Dimka Maslov. Дата создания - 26 мая 2002 года.

Процедура DeleteFiles Эта процедура принимает путь директории в виде параметра входных данных и удаляет все файлы в этой директории, соответствующие указанному маске. Вот что код делает: 1. Извлекает имя файла из пути ввода с помощью ExtractFileName. 2. Если имя файла пусто, то устанавливает маску на *.* (диапазон wildcard, совпадающий с любым файлом). 3. Извлекает путь директории из пути ввода и проверяет, является ли он пустым. Если так, то по умолчанию использует текущую рабочую директорию. 4. Создает объект TStringList для хранения списка файлов к удалению. 5. Код использует функцию FindFirst для поиска файлов в указанной директории, соответствующих маске. Итерирует результаты с помощью FindNext. 6. Для каждого найденного файла проверяет, является ли файл не директорий (используя Attr and faDirectory) и если имя файла совпадает с маской. Если оба условия истинны, то добавляет имя файла в TStringList. 7. Когда все файлы будут найдены, код итерирует список файлов и удаляет каждый из них с помощью DeleteFile.

Обработка ошибок Код использует блоки try-finally для обеспечения того, что ресурсы (например, объект FindSearchRec) правильно освобождаются в случае ошибки.

Альтернативное решение Если вы ищете более современное или эффективное решение, можно рассмотреть использование компонента Delphi TDirectory и его метода DeleteFile. Это упрощает код и уменьшает количество требуемых зависимостей. Например:

procedure DeleteFiles(Path: string);
var
  FileList: TStringList;
begin
  FileList := TDirectory.GetFiles(Path, '*.*');
  for i := 0 to FileList.Count - 1 do
    DeleteFile(Path + FileList[i]);
end;

Обратите внимание, что это решение предполагает Delphi 2009 или позднее. В более ранних версиях Delphi может потребоваться использование TSearchRec и FindFirst/FindNext, упомянутых выше.

Описана процедура 'DeleteFiles' на языке Delphi, которая удаляет содержимое каталога с помощью поиска файлов и удаления их методом DeleteFile.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Директории ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-19 00:40:21/0.0033290386199951/0