Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi SHFileOperation + FO_DELETE (https://www.delphipraxis.net/90007-shfileoperation-fo_delete.html)

himitsu 10. Apr 2007 12:38


SHFileOperation + FO_DELETE
 
Tachchen,

gibt es eigentlich eine Möglichkeit vorm Löschen zu prüfen, ob die Dateien im Papierkorb landen,
also ob es den überhaupt gibt und der auch aktiviert und überfüllt ist?

Eventuell auch dann, wenn jede Datei einzaln an SHFileOperation übergeben wird, sozusagen mit mehreren Aufrufen von SHFileOperation.

:angel:

hathor 10. Apr 2007 13:38

Re: SHFileOperation + FO_DELETE
 
Wenn das Flag FOF_ALLOWUNDO funktioniert, dann ist der Papierkorb aktiv.
Ob im Papierkorb was drin ist, kannst Du mit Dirsize Recycled feststellen.

himitsu 10. Apr 2007 14:30

Re: SHFileOperation + FO_DELETE
 
Na ja, es kommt ja nicht nur drauf an wieviel im Papierkorb schon ist, sonsdern was noch reinpaßt, bevor darin wieder was gelöscht wird.

Und ich kann FOF_ALLOWUNDO angeben sooft ich will ... es wird auch erfolgreich gelöscht, selbst wenn die Datei nicht im Papierkorb landet.
Also selbst auf 'ner FAT-Partition, oder NTFS mit abgeschjaltetem Papierkorb ... überall wird erfolgreich gelöscht nur daß dort halt nichts in einem Papierkorb landet.

Und wenn der Papierkorb voll ist, dann wird darin ja auch was gelöscht.

Ich bräuchte also irgendwie eine Info vor dem Löschen ... ich möchte dann eventeull woanderes eine Kopie anlege ... falls der Papierkorb nicht geht.

hathor 10. Apr 2007 14:48

Re: SHFileOperation + FO_DELETE
 
Aus Deiner Frage wird nicht ganz klar, was Du eigentlich willst:

Wenn Du in jedem Fall sicher sein willst, dass "gelöschte" Files wieder hergestellt werden können, dann mach Dir doch Deinen eigenen Papierkorb: erstelle ein Verzeichnis mit dem Namen MYRECYCLED oder sonst was und verschiebe die "gelöschten" Files hinein, wenn Du z.B. 10% der HDD zur Verfügung stellen willst, kannst Du ja vor jeder Löschaktion mit DIRSIZE prüfen.
Ist doch alles sooo einfach...

himitsu 10. Apr 2007 15:04

Re: SHFileOperation + FO_DELETE
 
Ich möchte genau andersrum ... ich will halt nur dann einen eigenen "Wiederherstellungsordner" anlegen, wenn der Papierkorb nicht geht.

Es soll also vorzugsweise der Papierkorb verwendet werden, aber dafür müßte ich dann vorher wissen ob es den gibt und ob auch alles da reinpaßt und wenn nicht, dann wird z.B. der Benutzer gefragt was/wie er es sonst machen möchte.

Luckie 10. Apr 2007 15:12

Re: SHFileOperation + FO_DELETE
 
Ob der Papierkorb aktiviert ist oder nicht für ein Laufwerk sollte in der Registry stehen. Eventuell gibt es auch eine API-Funktion dafür. Das wäre teil eins. Für Teil zwei müsstest du raus bekommen, wie viel schon im Papierkorb ist sollte nicht so schwer sein und du müsstest noch raus finden wie groß der Papierkorb eingestellt ist. Auch das sollte sich in der Registry finden lassen.

hathor 10. Apr 2007 15:22

Re: SHFileOperation + FO_DELETE
 
..get the number of Files in the Recycle Bin and their total size?

http://www.swissdelphicenter.ch/torr...de.php?id=1436

INFO:

Auf welche Weise Dateien im Papierkorb gespeichert werden:

http://support.microsoft.com/kb/136517


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz