AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Papierkorbähnlichen Container programmieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Papierkorbähnlichen Container programmieren?

Ein Thema von Mattze · begonnen am 28. Sep 2006 · letzter Beitrag vom 29. Sep 2006
Antwort Antwort
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

Papierkorbähnlichen Container programmieren?

  Alt 28. Sep 2006, 07:06
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
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Papierkorbähnlichen Container programmieren?

  Alt 28. Sep 2006, 08:06
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]
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#3

Re: Papierkorbähnlichen Container programmieren?

  Alt 28. Sep 2006, 09:23
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
  Mit Zitat antworten Zitat
rd5pro
(Gast)

n/a Beiträge
 
#4

Re: Papierkorbähnlichen Container programmieren?

  Alt 29. Sep 2006, 19:50
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
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:17 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