ファイルの移動・コピー・Upload/Downloadとタイムスタンプ

団体などで大量の過去記録をサーバーに保管して、ユーザーに提供する場合に、ファイルのタイムスタンプの日時は、ファイル移動を行った日時になり、ファイルの管理で困る。

特にスマホの写真・動画など、撮影した日時で整理するものでは、タイムスタンプが変更されると管理不能になる。
前の機種では撮影日時順に整理されて表示されていたものが、新機種にコピーやダウンロードした日付に全て統一されてしまう。

これを防ぐには、下記のアプリが必要だ。(注:全てフリーソフト)

項目 FastCopy / Backup(曽田氏)などバックアップアプリ WinSCP/FFFTP などサーバー送受信FTPソフト
主な用途 ローカルドライブ・LAN内NASのバックアップ ネットワーク越し(SFTP/FTP等)のバックアップ
転送速度 非常に高速(マルチスレッド・OSカーネルレベル) ネットワーク帯域や暗号化処理に依存
属性の維持 NTFS権限や詳細なファイル属性まで保持可能 タイムスタンプやパーミッション(Linux権限)を保持
エラー処理 読み取りエラー時のスキップ・ログ記録が強力 ネットワーク切断時の再接続や差分チェックに対応

この問題を調べた結果をご紹介。

タイムスタンプには、作成日時、更新日時、アクセス日時、がある。ファイルのプロパティで表示できる。
通常、エクスプローラの日時表示は「更新日時」だ。

生ファイルをWindowsの機能でUploadやDownloadすると、ファイルの3つの日時は全てが作業時刻にされてしまう。
これを防ぐには、Zipなどに入れて送受信するか、タイムスタンプを維持できるWinSCPなどのFTPアプリを利用する方法がある。

以下、調査結果をまとめた。

タイムスタンプ問題点

ファイルのコピー・移動・ダウンロード・アップロードで、タイムスタンプが変化すると困る。

どうなるかをまとめたのが下記

PC内での移動・コピー時のタイムスタンプ変化一覧

操作の種類 操作の詳細(移動先) 作成日時 更新日時
(エクスプローラ表示)
アクセス日時
📋 コピー 同一・別ドライブ共通
(C→C, C→D, C→USB)
❌ 現在時刻に上書き ⭕ 元のまま維持 ❌ 現在時刻に上書き
📦 移動 同じドライブ内
(Cドライブ内の別フォルダ)
⭕ 元のまま維持 ⭕ 元のまま維持 ⭕ 元のまま維持
📦 移動 別のドライブへ
(C→D, C→外付けHDD, C→USB)
❌ 現在時刻に上書き ⭕ 元のまま維持 ❌ 現在時刻に上書き
  • ポイント: エクスプローラで見えている「更新日時」は、どの操作をしても基本的には維持されます。しかし、「作成日時」は「同じドライブ内の移動」のとき以外、すべて現在時刻に上書きされてしまいます。

アップロード/ダウンロード時のタイムスタンプ変化

操作  作成日時 更新日時 アクセス日時
アップロード
(ブラウザ経由)
アップロード日時に上書き アップロード日時に上書き
(※クラウドサービスにより維持される場合あり)
アップロード日時に上書き
ダウンロード
(ブラウザ経由)
ダウンロード日時に上書き ダウンロード日時に上書き
(※一部のブラウザやサービスで維持される場合あり)
ダウンロード日時に上書き

 

タイムスタンプを維持する方法は?

ファイルのコピー、移動、ダウンロード、アップロード時におけるタイムスタンプ(作成日時・更新日時)の挙動について、「維持される方法」と「現在時刻になってしまう方法」を整理して一覧表にまとめました。

日常の運用やバックアップ、システム移行時の参考にしてください。

タイムスタンプ挙動一覧表

操作 タイムスタンプを維持する方法(推奨) 現在時刻に変化する方法

コピー
(同一PC内 / ネットワーク)

Win標準機能のコピー
* コマンドの利用:robocopy (Windows)で  /COPY:DAT  または  /DCOPY:DAT  オプションを使用。 
cp -p (Linux/Mac)を使用。 
* 専用ソフトの利用:FastCopyなどのコピー専用ツールを使用。

* 標準のエクスプローラーによるコピペ
※「更新日時」は維持されることが多いですが、
「作成日時」はコピーした現在時刻に

移動
(同一PC内 / ネットワーク)

* 同一ドライブ(ボリューム)内での移動:
通常のエクスプローラーでのドラッグ&ドロップや切り取り&貼り付け(NTFS等の管理情報がそのまま引き継がれるため、作成・更新日時ともに維持されます)。

* 異なるドライブ間での「切り取り&貼り付け」:
実質的に「コピー+削除」の挙動になるため、コピーと同様に「作成日時」が現在時刻になる場合があります。

ダウンロード(Web / クラウド)

* アーカイブ化(ZIP等)してダウンロード:
サーバー側でフォルダごとZIPやLZH、TAR等に圧縮し、それをダウンロードして手元で解凍する(圧縮ファイル内のタイムスタンプが維持されます)。

* 専用同期クライアントの利用:
OneDriveやGoogleドライブなどの公式デスクトップ同期アプリを使用する。

* ブラウザ経由の直接ダウンロード:
Webサイトやクラウドのパブリックリンクから、ファイルを単体で「名前を付けて保存」する(ローカルに新しくファイルが生成されたとみなされ、現在時刻になります)。

アップロード(Web / クラウド)

* アーカイブ化(ZIP等)してアップロード:
ローカルでZIP等に圧縮してからアップロードし、サーバー側で解凍する。 

* FTP/SFTPでの適切な設定:
FileZilla等のFTPソフトで「アップロードしたファイルのタイムスタンプを維持」にチェックを入れて転送する。 

* 専用同期クライアントの利用:
公式の同期アプリ経由でフォルダを同期する。

* ブラウザ(IE/Chrome等)へのドラッグ&ドロップ:
管理画面等にファイルを直接ドロップしてアップロードする(システム側の仕様により、サーバーに保存された時刻=現在時刻に書き換わることが大半です)。

注意点・補足

  • 「作成日時」と「更新日時」の違い: Windowsのエクスプローラーで単純にコピペをすると、「中身が更新されたわけではない」ため更新日時は維持されますが、「その場所に新しくファイルが作られた」と認識されるため作成日時は現在時刻になります。
  • 確実性を管理するなら「圧縮(ZIP)」: 環境やOS、OSのバージョンを問わず、最も確実にタイムスタンプをそのまま遠方に送りたい(アップ/ダウンしたい)場合は、「ローカル側で一度ZIP等のコンテナに固めてから動かす」のが最も手軽で確実な手段です。

FTPソフトでは、WinSCPが安定しタイムスタンプも維持される。

Windows環境において、WinSCPはその軽快さと接続の安定性、そして詳細な設定ができる点で非常に信頼性の高い定番ソフトでAmazonが公式に利用推奨。
WinSCPは標準仕様としてタイムスタンプ(更新日時)を維持する機能を強力にサポート。
なぜWinSCPがこの点で優れているのか、その仕組みと注意すべきポイントを解説します。

WinSCPがタイムスタンプを維持できる仕組み

WinSCPがタイムスタンプ(更新日時)を維持が基本機能として「オン」になっている

WinSCPのデフォルト設定(標準設定)では、「タイムスタンプを保存する(Preserve timestamp)」機能が最初から有効。
そのため、ユーザーが意識しなくても、アップロード・ダウンロード時に元のファイルの更新日時が引き継がれる。

プロトコルごとの挙動の違い

WinSCPが真価を発揮するのは、暗号化された SFTP(SSH File Transfer Protocol) を使用したときです。

  • SFTP 接続の場合(非常に安定) SFTPプロトコルには、標準でファイルの属性(タイムスタンプや権限)をリモート側・ローカル側へ正確に伝える仕様が組み込まれています。WinSCPはこれを利用し、ファイルだけでなく「フォルダ(ディレクトリ)」のタイムスタンプ維持にも対応しています(※設定でフォルダも維持するよう指定可能)。
  • 従来の FTP 接続の場合(サーバーによる) 古いFTPプロトコルは、本来「アップロードした時刻=現在時刻」にする仕様でした。しかし、WinSCPはサーバーが「 MFMT (タイムスタンプ変更コマンド)」に対応していれば、転送後に自動でコマンドを送り、サーバー側のタイムスタンプを元の時刻に書き換えてくれます。

総評

Webブラウザを使ったアップロード等では不可能な「過去の日時を保ったままのファイル配備」が、WinSCPならGUI(画面操作)で安全・確実に行えます。バックアップ用途や、更新日時をトリガーとするWebサイトの更新管理には欠かせないツールです。

 

\ 最新情報をチェック /