| Autor |
Beitrag |
FriFra
      
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
|
Verfasst: Di 15.04.03 11:05
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; |
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
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
|
Verfasst: 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 |
 Nein, mirst Du nicht...
 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,  obwohl ich mir sicher war, den Papierkorb nicht geleert zu haben...
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
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
|
Verfasst: Di 15.04.03 13:36
Ich habe Delphi7 pro und da funktioniert es 
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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. 
|
|
|