Entwickler-Ecke
Windows API - Löschen in Papierkorb funzt nicht...
FriFra - Di 15.04.03 11:05
Titel: Löschen in Papierkorb funzt nicht...
Die folgende Funktion löscht zwar die Dateien, allerdings ist der Papierkorb danach leer!
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; |
Delete - 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 - 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...
Delete - 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 - Di 15.04.03 13:36
Ich habe Delphi7 pro und da funktioniert es :D
Delete - 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
Quelltext
1:
| pFrom := PChar(FileName + #0); |
(oder auch #0#0). Dann geht´s auch hier. :)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!