Hallo,
vielleicht kann mir mal jemand folgendes merkwürdiges Verhalten von Delphi (Turbo 2006) beim Löschen von Dateien erklären:
Starte ich mein Programm nach dem compilieren aus der IDE heraus, wird die Datei zwar gelöscht, aber nicht in den Papierkorb verschoben. Starte ich die Datei nach den compilieren und einem build außerhalb der IDE, dann wird gelöscht und in den Papierkorb verschoben.
Hier mal der Quelltext eines kleinen Beispielprogramms:
Den Code der Funktion 'FileDeleteRB' habe ich übrigens den Internet entnommen
http://delphi.about.com/cs/...99/a/bltip0899_3.htm
Die Textdatei, die der Funktion übergeben wird, existiert vor dem Löschen in dem Verzeichnis 'D:\' und das Verzeichnis ist auch vorhanden und gültig.
Vielen Dank
vielleicht kann mir mal jemand folgendes merkwürdiges Verhalten von Delphi (Turbo 2006) beim Löschen von Dateien erklären:
Starte ich mein Programm nach dem compilieren aus der IDE heraus, wird die Datei zwar gelöscht, aber nicht in den Papierkorb verschoben. Starte ich die Datei nach den compilieren und einem build außerhalb der IDE, dann wird gelöscht und in den Papierkorb verschoben.
Hier mal der Quelltext eines kleinen Beispielprogramms:
Code:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI, StdCtrls; type TForm1 = class(TForm) BDelToBin: TButton; procedure BDelToBinClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BDelToBinClick(Sender: TObject); function FileDeleteRB(AFileName:string): boolean; var Struct: TSHFileOpStruct; pFromc: array[0..255] of char; Resultval: integer; begin if not FileExists(AFileName) then begin Result := False; exit; end else begin fillchar(pfromc,sizeof(pfromc),0) ; StrPcopy(pfromc,expandfilename(AFileName)+#0#0) ; Struct.wnd := 0; Struct.wFunc := FO_DELETE; Struct.pFrom := pFromC; Struct.pTo := nil; Struct.fFlags:= FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT; Struct.fAnyOperationsAborted := false; Struct.hNameMappings := nil; Resultval := ShFileOperation(Struct) ; Result := (Resultval = 0) ; end; end; begin if FileDeleteRB('D:\testdeltorecycle.txt') then showmessage('Erfolgreich in den Papierkorb verschoben') else showmessage('Problem beim Verschieben in den Papierkorb'); end; end.
http://delphi.about.com/cs/...99/a/bltip0899_3.htm
Die Textdatei, die der Funktion übergeben wird, existiert vor dem Löschen in dem Verzeichnis 'D:\' und das Verzeichnis ist auch vorhanden und gültig.
Vielen Dank
Comment