Ich habe ein Programm, das Dateien in zwei Ordnern vergleicht. Ich möchte feststellen, ob eine Datei umbenannt wurde, die neueste (zuletzt umbenannte) Datei bestimmen und den Namen der alten Datei entsprechend aktualisieren.Wie kann ich feststellen, wann eine Datei zuletzt umbenannt wurde?
Um dies zu erreichen, würde ich überprüfen, ob die neueste Datei Bit für Bit identisch mit der alten ist, und wenn dies der Fall ist, benennen Sie einfach die alte Datei um, damit sie der neuen Datei entspricht.
Das Problem ist, ich habe nichts zu Schlüssel, um mir zu sagen, welche Datei zuletzt umbenannt wurde.
Ich würde gerne eine Eigenschaft wie FileInfo.LastModified, aber für Dateien, die umbenannt wurden.
Ich habe bereits Lösungen wie FileSystemWatcher angeschaut, und das ist nicht wirklich das, wonach ich suche. Ich möchte meinen Synchronizer wann immer ich will laufen lassen, ohne mich um einen bestimmten Prozess kümmern zu müssen, der den Zustand eines Ordners verfolgt.
Irgendwelche Ideen?
... und kombinieren Sie es natürlich mit 'LastModified'. –
Ich habe bereits Hashes von Verzeichnissen an jedem Ende gespeichert. Matching-Daten Bit für Bit ist bereits möglich. Ich habe nur gehofft, dass ich mir vielleicht etwas Bandbreite sparen kann, wenn ich über langsame Netzwerke synchronisiere, indem ich bereits vorhandene Dateien verschiebe. Es sieht so aus, als gäbe es keine nicht NTFS-spezifische Möglichkeit, dies zu tun. –
Dies funktioniert möglicherweise auch über zugeordnete Treiber (oder Netzwerkfreigaben), vorausgesetzt, das Quellvolume ist NTFS. Wenn Sie es noch nicht gefunden haben, kann dies eine Hilfe sein: http://www.codeproject.com/KB/cs/ntfstreces.aspx –