Die Fakten bewegt:Wie Sie feststellen, ob eine Datei logisch verschoben werden oder physikalisch
Wenn eine Datei verschoben wird, gibt es zwei Möglichkeiten:
- Die Quell- und Zieldatei auf dem gleichen Partition und nur der Dateisystemindex ist aktualisiert
- Die Quelle und das Ziel sind auf zwei verschiedenen Dateisystem und die Datei muss Byte pro Byte verschoben werden. (Kopieren aka auf move)
Die Frage:
Wie kann ich feststellen, ob eine Datei entweder logisch oder physikalisch bewegt wird?
Ich übertrage große Dateien (700+ MBS) und würde ein anderes Verhalten für jede Situation annehmen.
Edit:
ich bereits einen bewegten Datei-Dialog mit einem Arbeitsthread codiert habe, dass die Blockierung io ausführen rufen Sie die Datei einen meg zu einem Zeitpunkt, zu kopieren. Es liefert dem Benutzer Informationen wie eine grobe Schätzung der verbleibenden Zeit und Übertragungsrate.
Das Problem ist: Woher weiß ich, ob die Datei logisch verschoben werden kann, bevor Sie versuchen, es physisch zu verschieben?
Sie machen die falsche Annahme, dass eine Datei bewegen sich auf derselben Partition ist lediglich eine Änderung der Metadaten. Dies gilt nicht unbedingt für NTFS. Wenn Sie eine Datei in ein komprimiertes Verzeichnis ein- oder auslagern, kann eine physische Kopie die Datei (de) komprimieren. In ähnlicher Weise können verschlüsselte Verzeichnisse dazu führen, dass physische Kopien die Datei (de) kryptieren. – MSalters
Sie haben Recht, ein Kopier-/Löschvorgang kann innerhalb derselben NTFS-Partition erforderlich sein. Mein Ziel war es jedoch, festzustellen, ob eine Kopie/Löschung erforderlich ist oder ob eine einfache Änderung der Metadaten die Aufgabe übernehmen würde, die Datei zu verschieben. Die akzeptierte Lösung behebt dieses Problem. Wenn Sie andere Fragen oder andere Lösungen haben, können Sie gerne einen Beitrag leisten. Thx –