Подписаться на RSS рассылку
Главная » Статьи по Delphi » Файлы » Как удалить файл в корзину

Как удалить файл в корзину

Автор: Dimka Maslov

Функция удаляет файл, имя которого указаывается в аргументе FileName в корзину. Второй необязательный параметр указывает на Handle окна, которое будет родительским для отображаемых системой диалоговых окон. Не забудьте добавить модуль ShellAPI

// Зависимости: Windows, ShellAPI, Forms
// Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
// Copyright: Dimka Maslov

function Recycle(const FileName: string; Wnd: HWND = 0): Boolean;
var
  FileOp: TSHFileOpStruct;
begin
  FillChar(FileOp, SizeOf(FileOp), 0);
  if Wnd = 0 then
    Wnd := Application.Handle;
  FileOp.Wnd := Wnd;
  FileOp.wFunc := FO_DELETE;
  FileOp.pFrom := PChar(FileName);
  FileOp.fFlags := FOF_ALLOWUNDO or FOF_NOERRORUI or FOF_SILENT;
  Result := (SHFileOperation(FileOp) = 0) and (not
    FileOp.fAnyOperationsAborted);
end;

Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
begin
  Recycle('Путь к файлу', Handle);
end;

Просмотров: 6218

Обсудить на форуме

0   Спам
(27.01.2012)
6. KneenoInsague
Наконец-то нашёл то, что так долго искал!..

0   Спам
(27.05.2011)
5. Алексей
uses ShellAPI;

function DeleteFileWithUndo( sFileName : string ) : boolean;
var fos : TSHFileOpStruct;
begin
sFileName:= sFileName+#0;
FillChar( fos, SizeOf( fos ), 0 );
with fos do begin
wFunc := FO_DELETE;
pFrom := PChar( sFileName );
fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;
end;
Result := ( 0 = ShFileOperation( fos ) );
end

0   Спам
(26.10.2010)
4. abc
На самом деле, пример работает наполовину. Некоторые файлы, удалять не хочет (причём, они не зашарены) [другие оболочки удаляют спокойно].
Например:
St := 'e:\Temp\05 Running Out Of Days.mp3';
Recycle(St, Handle);

Особенно, если в имени файла есть апостроф ('). Система Win7 x64, D2010.


0   Спам
(08.08.2010)
3. Сергей (Admin)
А, да, точно. smile Давно было дело.

0   Спам
(05.08.2010)
2. impulse101
Если точнее, то CopyFile()

0   Спам
(05.08.2010)
1. Антон (Digy)
а как, например, скопировать файл в указаную директорию?
Ответ: Функция Copy


Имя *:
Email:


Код *:

Copyright © 2008-2016 Программирование на Delphi для начинающих и не только

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации

Хостинг от uCoz

Автор проекта: Борисов Сергей

e-mail: save-x@yandex.ru

Связь с администрацией сайта