Вниз
Скачать: CL | DM;

Как удалить файл с диска и сохранить в его в корзине?   Найти похожие ветки 

 
Дмитрий   (2004-05-05 15:59) [0]

Удаляю файл стандартной функцией DeleteFile, которая не сохраняет его в корзине, а было бо неплохо...


 
Игорь Шевченко ©   (2004-05-05 16:09) [1]

SHFileOperation ?


 
real_dimedrol   (2004-05-05 16:12) [2]

Весь код не мой, но рабочий. Вот так удалить можно по-виндовому с окошком с летающими листиками

Function DeleteToRecycleBin(FileName:String):Boolean;
Var
 Operation:TSHFileOpStruct;
 FromName:Array[0..Max_Path] Of Char;
 MaxLen,X:Integer;
Begin
  MaxLen:=Length(FileName);
  For X:=1 To MaxLen Do
      FromName[X-1]:=FileName[X];
  FromName[MaxLen+0]:=#0;
  FromName[MaxLen+1]:=#0;
  Operation.Wnd:=FORM1.Handle; {Handle to form that called this function
  in case of error message}
  Operation.wFunc:=FO_Delete;
  Operation.pFrom:=FromName;
  Operation.pTo:=Nil;
  Operation.fFlags:=FOF_ALLOWUNDO Or FOF_NOCONFIRMATION;
  Operation.hNameMappings:=Nil;
  Operation.lpszProgressTitle:="Deleting Files (Moving to Recycle Bin)";
  SHFileOperation(Operation);
  Result:=Operation.fAnyOperationsAborted;
End;

А если без понтов - то корзина - это просто папка на диске. А "Удаление" - просто копирование в эту папку.


 
real_dimedrol   (2004-05-05 16:13) [3]

Весь код не мой, но рабочий. Вот так удалить можно по-виндовому с окошком с летающими листиками

Function DeleteToRecycleBin(FileName:String):Boolean;
Var
 Operation:TSHFileOpStruct;
 FromName:Array[0..Max_Path] Of Char;
 MaxLen,X:Integer;
Begin
  MaxLen:=Length(FileName);
  For X:=1 To MaxLen Do
      FromName[X-1]:=FileName[X];
  FromName[MaxLen+0]:=#0;
  FromName[MaxLen+1]:=#0;
  Operation.Wnd:=FORM1.Handle; {Handle to form that called this function
  in case of error message}
  Operation.wFunc:=FO_Delete;
  Operation.pFrom:=FromName;
  Operation.pTo:=Nil;
  Operation.fFlags:=FOF_ALLOWUNDO Or FOF_NOCONFIRMATION;
  Operation.hNameMappings:=Nil;
  Operation.lpszProgressTitle:="Deleting Files (Moving to Recycle Bin)";
  SHFileOperation(Operation);
  Result:=Operation.fAnyOperationsAborted;
End;

А если без понтов - то корзина - это просто папка на диске. А "Удаление" - просто перемещение в эту папку.


 
Palladin ©   (2004-05-05 16:13) [4]

http://www.delphimaster.ru/articles/shfileopst/


 
Дмитрий   (2004-05-05 16:52) [5]

Огромное спасиба! Разобрался!



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.027 c
3-1082806166
N-nescio
2004-04-24 15:29
2004.05.23
Проблема с кирилицей в dbf


11-1072025889
AlexCo2
2003-12-21 19:58
2004.05.23
Функция PlaySound


3-1082795753
Сказочник
2004-04-24 12:35
2004.05.23
Почему не работает count(*)


3-1082701593
Andrey_Zh
2004-04-23 10:26
2004.05.23
Базы данных


14-1083656290
GanibalLector
2004-05-04 11:38
2004.05.23
ДОС версии ниже 6.22.




   Наверх