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

Удаление файла в корзину 2

Delphi , Файловая система , Корзина

Удаление файла в корзину

Code:

unit Unit1;
 
interface
 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellAPI;
 
const
SHERB_NOCONFIRMATION  =  $1;
SHERB_NOPROGRESSUI    =  $2;
SHERB_NOSOUND         =  $4;
 
type
TForm1 = class(TForm)
   btnGetRecicleBinFileCount: TButton;
   btnEmptyRecicleBin: TButton;
   btnDelToReciclebin: TButton;
   procedure btnGetRecicleBinFileCountClick(Sender: TObject);
   procedure btnEmptyRecicleBinClick(Sender: TObject);
   procedure btnDelToReciclebinClick(Sender: TObject);
end;
 
type
  TSHQueryRBInfo = packed record
    cbSize      : DWORD;
    i64Size,
    i64NumItems : TLargeInteger;
 end;
  PSHQueryRBInfo = ^TSHQueryRBInfo;
 
function SHEmptyRecycleBin(hwnd: HWND; pszRootPath: PChar;
   dwFlags: DWORD): HRESULT; stdcall;
   external 'shell32.dll' name 'SHEmptyRecycleBinA';
 
function SHQueryRecycleBin (pszRootPath: PChar;
   var SHQueryRBInfo: TSHQueryRBInfo): HRESULT; stdcall;
   external 'Shell32.dll' name 'SHQueryRecycleBinA'; 
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
// Удаление файла в корзину...
procedure TForm1.btnDelToReciclebinClick(Sender: TObject);
var
Struct: TSHFileOpStruct;
Err: HRESULT;
begin
with Struct do
begin
   Wnd := Handle;
   wFunc := FO_DELETE;
   pFrom := 'c:\1.txt';
   pTo := nil;
   fFlags := FOF_ALLOWUNDO;
   fAnyOperationsAborted := True;
   hNameMappings := nil;
   lpszProgressTitle := nil;
end;
Err := SHFileOperation(Struct);
if Err <> S_OK then ShowMessage(SysErrorMessage(Err));
end;
 
end.

Автор: Rouse_

Взято из http://forum.sources.ru

Программа на языке Delphi, которая демонстрирует, как удалить файл из корзинки с помощью Windows API.

 

Вот подробное описание того, что код делает:

 

  1. Программа использует несколько библиотек Windows API, включая Windows, Messages, SysUtils, Variants, Classes и ShellAPI.
  2. Она определяет два константы: SHERB_NOCONFIRMATION и SHERB_NOPROGRESSUI, которые используются для настройки поведения корзины.
  3. Программа определяет форму (TForm1) с тремя кнопками:
    • btnGetRecicleBinFileCount: получает количество файлов в корзине.
    • btnEmptyRecicleBin: очищает корзину.
    • btnDelToReciclebin: удаляет файл в корзину.
  4. Программа определяет две функции из Windows API:
    • SHEmptyRecycleBin: очищает корзину.
    • SHQueryRecycleBin: получает информацию о корзине.
  5. В обработчике события btnDelToReciclebinClick программа создает структуру TSHFileOpStruct, чтобы определить операцию с файлом:
    • Она устанавливает handle окна (Wnd) в handle текущей формы.
    • Она устанавливает функцию файла (wFunc) в FO_DELETE, указывая, что она хочет удалить файл.
    • Она устанавливает путь исходного файла (pFrom) в 'c:\1.txt'.
    • Она устанавливает путь назначения файла (pTo) в nil, указывая, что она не нуждается в перемещении файла.
    • Она устанавливает флаги (fFlags) в FOF_ALLOWUNDO, позволяя пользователю отменить операцию, если это необходимо.
    • Она инициализирует переменную Err для хранения кодов ошибок, возвращаемых функциями Windows API.
  6. Затем программа вызывает функцию SHFileOperation с структурой TSHFileOpStruct как аргументом, которая выполняет операцию с файлом. Если операция успешна, она отображает сообщение об ошибке, указывая, что операция была выполнена. Если возникла ошибка, она отображает сообщение об ошибке с соответствующим кодом ошибки.

 

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

Удаление файла в корзину на языке Delphi с помощью функции SHFileOperation и интерфейса ShellAPI.


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

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




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


:: Главная :: Корзина ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-04-26 16:17:42/0.0032069683074951/0