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

Файл в корзину

Delphi , Файловая система , Файлы

Файл в корзину

MS Windows: Корзина должна быть чиста как совесть!

Не забудьте добавить ShellAPI в группу uses.

А это сама функция, которая выполняет всю работу:


function RecycleFile(sFileName: string): Boolean;
var
FOS: TSHFileOpStruct;
begin
   FillChar(FOS, SizeOf(FOS), 0);
   with FOS do
      begin
         wFunc := FO_DELETE; { так же можно использовать FO_COPY.
         pFrom := PChar(sFileName);
         pTo := { только для FO_COPY }
         fFlags := FOF_ALLOWUNDO; { Так как мы хотим послать файл в корзину }
      end;
   // Отправляем файл
   Result := (SHFileOperation(FOS) = 0);
end;

// Пример вызова функции:
RecycleFile('E:\Test.exe' + #0);

// либо, если изменить строку
// pFrom:=PChar(sFileName+#0); ,
// то можно вызывать проще:
RecycleFile(Filename);

Программный код на языке Delphi!

Функция RecycleFile, которая принимает строковый параметр sFileName и пытается отправить файл, указанный этим именем, в корзину. Функция использует Windows Shell API'ы функцию SHFileOperation для достижения этого.

Разбивка кода:

  1. Переменная FOS объявлена как TSHFileOpStruct, которая является структурой, используемой функцией SHFileOperation.
  2. Функция FillChar используется для инициализации структуры FOS нулями.
  3. Используется оператор with для установки различных полей структуры FOS:
    • wFunc: Установлен в FO_DELETE, что указывает на то, что должна быть выполнена операция удаления (в этом случае отправка файла в корзину).
    • pFrom: Установлен в указатель на строковый параметр sFileName.
    • pTo: Не используется в этом реализации, так как она только необходима для операций копирования.
    • fFlags: Установлен в FOF_ALLOWUNDO, что позволяет пользователю отменить операцию удаления (то есть восстановить файл из корзины).
  4. Переменная Result установлена в значение возвращаемое функцией SHFileOperation, которое указывает, была ли операция успешной.
  5. Наконец, функция RecycleFile возвращает булевое значение, указывающее, был ли файл успешно отправлен в корзину.

Пример кода в конце демонстрирует, как вызывать эту функцию с конкретным именем файла ('E:\Test.exe' + #0). КарACTER #0 используется для null-терминации строки, которая необходима для типа PChar (указатель на null-терминированную строку).

Если вы хотите упростить вызов функции и передать имя файла напрямую без конкатенации с #0, можно модифицировать код, как показано в комментарии.

В целом, этот код демонстрирует, как использовать Delphi Shell API для отправки файлов в корзину.

Функция RecycleFile на языке Delphi реализует удаление файлов в корзину на операционной системе Windows, выполняя функцию SHFileOperation.


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

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




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


:: Главная :: Файлы ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-10-24 19:58:01/0.0035741329193115/0