団体などで大量の過去記録をサーバーに保管して、ユーザーに提供する場合に、ファイルのタイムスタンプの日時は、ファイル移動を行った日時になる。
これでは、ファイルの管理で困ることになる。
この問題を調べた結果をご紹介。

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

生ファイルを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サイトの更新管理には欠かせないツールです。