Autor Beitrag
FriFra
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: Di 15.04.03 11:05 
Die folgende Funktion löscht zwar die Dateien, allerdings ist der Papierkorb danach leer!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
function DeleteFileWithUndo(FileName: string): Boolean;
var
  f: TSHFileOpStruct;
begin
  FillChar(f, SizeOf(f), 0);
  with f do
  begin
    wFunc := FO_DELETE;
    pFrom := PChar(FileName);
    fFlags := FOF_ALLOWUNDO + FOF_NOCONFIRMATION + FOF_SILENT;
  end;
  Result := ShFileOperation(f) = 0;
end;
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 15.04.03 11:26 
Wahrscheinlich werde ich mir für diesen Kommentar hinterher einige harsche Kritik anhören dürfen, aber -

Dein Papierkorb (bzw. der, auf dessen Rechner dein Programm läuft) ist auch so eingestellt, dass Dateien wiederhergestellt werden können?
FriFra Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: Di 15.04.03 11:45 
MathiasSimmack hat folgendes geschrieben:
Wahrscheinlich werde ich mir für diesen Kommentar hinterher einige harsche Kritik anhören dürfen


:oops: Nein, mirst Du nicht...


:roll: Ich weiss zwar nicht warum diese Option aktiviert war, aber es war tatsächlich so... ich hatte mich schon einmal vor ein paar Wochen geärgert, dass eine Datei nichtmehr auffindbar war, :x obwohl ich mir sicher war, den Papierkorb nicht geleert zu haben...
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 15.04.03 13:27 
Nebenbei gesagt: Die o.g. Funktion "DeleteFileWithUndo" hat Probleme mit Dateinamen, in denen ein Leerzeichen vorkommt. Doppelte Anführungszeichen (Gänsefüßchen) helfen da nicht. - Zumindest trat dieses Problem (Dateisystemfehler) bei mir mit Delphi 5 Pro auf.
FriFra Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: Di 15.04.03 13:36 
Ich habe Delphi7 pro und da funktioniert es :D
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 15.04.03 14:29 
Ich wollte darauf hinaus, dass -laut Microsofts PSDK- der komplette Name mit zwei Null-Zeichen abgeschlossen werden muss. Es ist daher ausreichend, die folgende Zeile in der Funktion wie folgt zu ändern
ausblenden Quelltext
1:
 pFrom := PChar(FileName + #0);					

(oder auch #0#0). Dann geht´s auch hier. :)