13

申し訳ありませんが、これは初心者の質問のように聞こえます。しかし真剣に、私は経験豊富な開発者であり、Windows 7 Pro 64 ビットなどは、「NTFS ツリーをあるドライブから別のドライブに移動すると、子ファイルを書き込むときに、親フォルダーを変更しているので、そのタイムスタンプを更新します。」そのため、すべての宛先ファイルのタイムスタンプは元のファイルと同じになりますが、すべてのフォルダーは同じちょうど今変更された日付/時刻になります。

だから私は何が起こっているのか理解しています。また、NTFS でファイルをコピー/移動するための独自のユーティリティ (持っている) を作成できることも知っています。しかし、ユーティリティにはリスクがあります。NTFS に対応していない場合、他のプロパティを無視したり、NTFS 代替データ ストリーム (ADS) などを見逃したりする可能性があります。

ツリー全体を単純に移動し、タイムスタンプを維持する、NTFS 対応の優れたツリー移動ユーティリティを知っている人はいますか? 私は何も失う危険を冒したくありません。ありがとう。

4

3 に答える 3

17

Helge Klein's answer からヒントを得て、Robocopyをより詳しく調べました。Robocopy (Windows 7 に付属するものなどの最新バージョン) は、コピーされたフォルダー構造のタイムスタンプを実際に複製できることがわかりました。コピー後にソース ディレクトリを削除する「移動」オプションもありますが、Microsoft の無限の知恵では、これは「ディレクトリ タイムスタンプを保持する」オプションと互換性がないため、コピー後にソース ツリーを削除する必要があります。

コマンドライン引数のオプションは気が遠くなるようなものです。私はいくつかの調査を行いました.Robocopyを使用して保存されたディレクトリのタイムスタンプをコピーする基本的なコマンドは次のとおりです。

robocopy %1 %2 /e /dcopy:T

...%1はソース ディレクトリで、%2は宛先ディレクトリです。

NTFS セキュリティ、所有者、監査アクセス許可など、すべてを確実にコピーする場合は、次のように、すべての属性をコピーしてバックアップ モードを使用するように指定します。

robocopy %1 %2 /b /e /copyall /dcopy:T

ただし、これらの追加オプションを使用するには、(管理者アカウントだけでなく) 完全な管理者権限が必要です。たとえば、[スタート] をクリックし、[コマンド プロンプト] を右クリックして、[管理者として実行]を選択します。次に、上記のコマンドを入力します。

PS Robocopy が NTFS ストリームも転送することを確認しました。

于 2012-04-21T05:59:27.510 に答える
3

私はrobocopyをお勧めするつもりでしたが、シナリオを試してみると、あなたが説明したように、コピーされたディレクトリが新しい日付のままになることがわかりました(驚いたことに)。

一方、Total Commanderは、ディレクトリのタイムスタンプもコピーします。

于 2012-04-20T18:38:19.873 に答える
3

SynchronizeIt は、Robocopy と同様に優れた GUI と、コピーするファイルを簡単に確認して選択するオプションを備えています。 http://www.grigsoft.com/wndsync.htm

(ただし、このツールが目的のファイルを何らかの形で破損するという非常にまれなケースがあることに注意してください。ダウンロード マネージャー、特に FlashGet と Orbit Downloader を使用してダウンロードしたファイルで発生しました。最初の 25kb のみが正しくコピーされ、残りはゼロで埋められました。説明がわかりません.Robocopy も同様にまれなケースで失敗するのを見てきました.似たようなファイル名で混乱し、一方のファイルを別のファイルにコピーしてしまい、もう一方のファイルを見逃してしまいました. Total Commander または WinMerge を使用したコピーは完璧です。)

于 2012-11-25T20:43:27.270 に答える