![]() |
Papierkorbähnlichen Container programmieren?
Hallo,
ist ja ein Ding. Habe ich das nur an die falsche Stelle geschrieben (Windows API) oder kann mir wirklich keiner einen Tipp geben? Wie programmiert man so einen Container, wie es der Papierkorb ist. Genauer: Wie verschiebt man eine Datei in ein anderes Verzeichnis, so dass sie ihren Ursprungsort auch mit speichert und wie wertet man das aus, um die Datei bei Bedarf zurück zuschieben. Ich möchte so etwas ähnliches wie ein "Quaratäneverzeichnis" der meisten Antivirenprogramme basteln. Da gibt es die SHNameMapping-Struktur. Wird die für jede Datei immer angelegt und wie kiege ich die dann? Laut Hilfe nur bei SHFileOperation!? Kann mir jemand einen Tipp geben? Gruß Matthias |
Re: Papierkorbähnlichen Container programmieren?
Also ich kann dir schon allgemein ein paar Tipps geben, aber nicht zu SHFileOperation - davon habe ich leider keine ahnung!
Du kannst doch bestimmte Dateien in ein Verzeichnis verschieben und diese irgendwie bennen, spielt zunächst keine Rolle. Daneben brauchst du eine Liste, die den Pfad zur Datei weiß, den vorherigen Pfad, wann die Datei gelöscht worden ist, etc. Beispiel: Datei liegt anfangs in: C:\Programme\Test\Textdatei.txt Nach dem verschieben in deinem Programmverzeichnis: D:\Mein Programme\Verzeichnis\dat1.bak Das verschieben der Datei erfolgt ja über dein Programm, wie genau, das musst du halt programmieren! Und dabei merkst du dir halt beide Pfade - somit kannst du die Datei bei Bedarf wiederherstellen. [EDIT] Meine nächste Idee wäre ein eigenes Dateisystem aufzubauen und darin alle Datei verpacken. Da kannst du dann ja auch mehrere Informationen speichern etc. Nur davon habe ich leider auch keine ahnung *G* [/EDIT] |
Re: Papierkorbähnlichen Container programmieren?
Hallo,
danke für die Tipps. Das mit der Extraliste, wo alles drin steht, ist wirklich überlegenswert! Man könnte ja auch an die Datei selber eine Info ranhängen, aber dann gibt es bestimmt Probleme beim Kopieren ausserhalb... Ich wollte das allerdings alles vermeiden. Der Papierkorb kann das doch auch! Also muss es solche Möglichkeit doch direkt geben. Irgendwo in der Windows-Hilfe (in Delphi) habe ich dazu auch ein Clipboardformat gesehen, da steht der neue und der alte Pfad und Name drin. Aber ob und wie das in meinem Sinne auszunutzen ist??? Das mit der Liste werde ich aber erst mal machen. Ist wahrscheinlich ein gangbarer Weg! Trotzdem: Über weitere Tipps würde ich mich freuen. Gruß Matthias |
Re: Papierkorbähnlichen Container programmieren?
Die Datei in eine (eventuell versteckte) ZIP-Datei verschieben? Das wäre dann so eine Art Container.
Allerdings wird in ZIP-Dateien der Laufwerksbuchstabe nicht mitgespeichert, aus "c:\dummy\bild.bmp" wird "\dummy\bild.bmp". Wenn Du für jedes Laufwerk eine ZIP-Datei anlegst, (z.B. "C_zipped.zip", "D_zipped.zip") lässt sich aus dem Namen der ZIP-Datei beim Wiederherstellen der Originaldateiname inkl. Laufwerksbuchstaben rekonstruieren. Oder beim Verschieben der Datei in die ZIP-Datei den Originaldateinamen mit Laufwerksangabe als Kommentar in die ZIP-Datei eintragen (ist aber recht aufwändig). Roland |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz