Laden...

Eindeutige ID aus einem Ordner ermitteln (tolerant gegen move und rename)

Erstellt von vreden123 vor 10 Jahren Letzter Beitrag vor 10 Jahren 4.461 Views
V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren
Eindeutige ID aus einem Ordner ermitteln (tolerant gegen move und rename)

Hallo,

ich möchte von einem Ordner eine eindeutige ID ermitteln.
Diese ID darf sich für den entsprechenden Ordner nicht ändern.
D.h. wenn der Ordner verschoben ober umbenannt wird, muss die ID gleich bleiben.

Also egal was mit dem Ordner passiert, ich möchte ihn anhand einer Id wieder erkennen können.

Mit einem Filewatcher der evtl. entsprechende Events abfängt löst leider nicht mein Problem.

Ich habe auch schon ein Beispiel von folgender Seite probiert:
Getting a Folder ID C#

Das klappt auch schon, nur leider erhalte ich bei einigen Ordnern eine Fehlermeldung das eine Datei nicht gefunden wurde.

Kann mir vielleicht jemand weiterhelfen wie ich das Problem am besten lösen kann?

Vielen Dank im Vorraus!

Gruß
vreden123

1.346 Beiträge seit 2008
vor 10 Jahren

Hi,

Generiere eine zufällige Guid und packe die in eine Datei in den Ordner.

LG pdelvo

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Ne das geht leider nicht. Wird die Datei gelöscht kann ich den Ordner nicht mehr zuordnen. Das muss nur am Ordner fest gebunden sein.

16.807 Beiträge seit 2008
vor 10 Jahren

Es gibt keine eindeutige ID eines Ordners. Selbst bei einem Move erfolgt ein Create und Delete.

1.346 Beiträge seit 2008
vor 10 Jahren

Mir ist gerade noch eine Idee gekommen. Und zwar kann ein Ordner auch mehrere NTFS Streams umfassen, in dem man soetwas speichern kann. Dann wärst du aber an NTFS gebunden, und solche Informationen überleben auch keinen Transfer über z.B. FTP.

LG pdelvo

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Das wäre eine Möglichkeit weil der Order nur im unterordner verschoben wird. Also ein ftp ect.
Wie komme ich denn an den Stream ran?

In meinen oben geposteten link klappte das auch bei einigen Ordnern und bei anderen nicht. Leider weiß ich nicht woran das lag.

1.346 Beiträge seit 2008
vor 10 Jahren

Hallo,

Es gibt hier auf MyCSharp sogar einen Artikel dazu: [Artikel] Alternative NTFS Datenströme

LG

V
vreden123 Themenstarter:in
31 Beiträge seit 2012
vor 10 Jahren

Das ist evtl. Eine Möglichkeit.
Mir ist da noch was eingefallen, kann man einem Ordner eigene definierte Attribute geben? Also zb. Das Attribute id mit einer zufälligen id?
Ist sowas möglich?

16.807 Beiträge seit 2008
vor 10 Jahren

Hast Du Dich schon mal mit NTFS befasst und hast verstanden, wie auf dem FileSystem Dateien und Ordner abgelegt werden?
Vielleicht löst das schon seeehr viele Fragen und erweitert auch das Verständnis, wieso das so keinen Sinn macht 😉

Du brauchst eine Zwischenschicht, da Dir NTFS und dessen Features wohl nicht reichen.
Wie wärs mit GridFS?

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo vreden123,

obwohl ich schon denke, dass NTFS Möglichkeiten bietet, um Zusatzinformationen zu einem Ordner abzulegen, z.B. die genannten ADS, wird das Problem immer sein, dass nicht alle Programme diese Zusatzinformationen berücksichtigen, z.B. wenn man ein Backup erstellt und später wieder einspielt, könnte die Information verloren sein.

Ich persönlich finde eine zusätzliche Datei mit der ID im Ordner gar nicht schlecht. Warum sollte diese gelöscht werden? Durch den Benutzer? Wenn der andere Dateien aus dem Ordner löscht, könnte es auch Probleme geben. Die zusätzliche Datei ändert also nichts prinzipielles. Davon abgesehen könnte man die Zugriffsrechte auf die Datei so einschränken, dass zumindest ein versehentliches Löschen ausgeschlossen ist.

herbivore

N
60 Beiträge seit 2010
vor 10 Jahren

Ist nicht evtl. der Pfad zu einer Datei schon eine eindeutige ID? Den könnte man dann auch noch hashen so das es es mehr aussieht wie eine typische "id"...

Hinweis von herbivore vor 10 Jahren

Dieser Vorschlag genügt nicht der Anforderung aus dem Startbeitrag, dass die ID bei Umbenennung und/oder Verschiebung unverändert bleibt.

P
660 Beiträge seit 2008
vor 10 Jahren

ich würde auch zu einer Datei raten, vllt ne simple Ini (ID = something) oder eine xml (für zukünftige
erweiterungen), die Datei als versteckt markieren und vllt noch den FileSystemWachter dazu nutzen
automatisch solch eine Ini/xml anzulegen wenn ein neuer Ordner angelegt wird. vorher natürlich
prüfen ob solch eine Datei bereits vorhanden ist. (falls der ordner verschoben wird)

MfG
ProGamer*Der Sinn Des Lebens Ist Es, Den Sinn Des Lebens Zu Finden! *"Wenn Unrecht zu Recht wird dann wird Widerstand zur Pflicht." *"Ignorance simplifies ANY problem." *"Stoppt die Piraterie der Musikindustrie"