スマホの写真・動画をWindows PCにコピーしても撮影日時を変えない方法|PowerShellで作成日時を保持

スマホで撮った写真(JPG)や動画(MP4)をWindows PCへコピーしたら、エクスプローラー上の「作成日時」がコピーした時刻に変わってしまい、あとから整理しにくい…という悩みはよくあります。結論から言うと、スマホ→PCのコピー方法を工夫するよりも、まずは普通にコピーしてからPowerShellで「作成日時=撮影日時(に近い値)」へ整えるのが最も確実で、写真も動画もまとめて処理できます。

目次

スマホからPCにコピーすると「撮影日時」がズレる理由

Windowsで日付がややこしく感じる原因は、エクスプローラーに似た名前の日時が複数あるためです。

表示名(Windows)内部的な意味よくある挙動(スマホ→PCのコピー)整理に向くか
作成日時CreationTime(PC上でファイルが作られた時刻)PCにコピーした時刻になることが多い撮影順の整理には不向き
更新日時LastWriteTime(内容が最後に書き込まれた時刻)撮影日時に近い値のまま残ることが多い撮影順の整理に使えることが多い
撮影日時(撮影日)EXIF/メディア情報(写真のDateTakenなど)ファイルとは別のメタデータとして保持されやすい最も撮影に忠実だが欠ける場合あり

AndroidをUSB接続してMTP転送(エクスプローラーでスマホを開いてコピー)すると、

  • 作成日時:PCにコピーした時刻に変わる
  • 更新日時:撮影日時に近い値のまま残る

というパターンが多いです。つまり「更新日時が撮影日時っぽいなら十分」という運用もできます。

最初に確認したいこと:本当に「作成日時」が必要か

検索で「撮影日時が変わった」と言われるケースでも、よく見ると更新日時は撮影日時のままで、作成日時だけがコピー時刻になっていることがほとんどです。

  • エクスプローラーの一覧で「更新日時」を基準に並び替えられるなら、そのままでも整理は可能です。
  • さらに正確に行くなら、表示列に「撮影日(Date taken)」を追加して、撮影日で並び替えるのが強いです(写真は特に)。

ただ、バックアップソフトや写真整理ソフトが「作成日時」を基準に扱う場合や、フォルダ内の並びが作成日時依存の運用になっている場合は、作成日時も撮影日時に揃えるメリットが大きいです。ここから先はその方法を解説します。

おすすめの全体手順:コピーは割り切って、PC側で日時を整える

もっとも失敗しにくい流れは次の通りです。

  1. まずはコピーしやすい方法でスマホ→PCにファイルを移す(エクスプローラー、ZIP、クラウド、転送サービスなど)
  2. PC側の保存フォルダに対してPowerShellを実行し、作成日時を撮影日時へ寄せる
  3. 少数ファイルでテスト→問題なければ本番フォルダへ適用

「コピー時に完璧に保持する」よりも、「コピー後に整える」ほうが、スマホ機種差・転送方式差に左右されにくいです。

簡易版:作成日時を更新日時に合わせる(写真・動画・サブフォルダ対応)

多くの環境では、コピー後でも更新日時が撮影日時に近いまま残ります。そこで、作成日時を更新日時に合わせれば、エクスプローラー上の表示が整います。

特徴

  • JPG/MP4など複数拡張子に対応できる
  • サブフォルダもまとめて処理できる
  • EXIFを読まないので高速・シンプル
  • ただし、更新日時が撮影日時とズレているファイル(編集・加工済み等)もそのズレを引き継ぐ

実行前のチェックポイント

チェック項目理由おすすめ
別フォルダにコピーしてテストできるか日時を上書きすると戻しづらい必須
対象が写真だけか、動画も含むか拡張子指定を間違えると漏れる*.jpg, *.jpeg, *.mp4 などを明示
サブフォルダも対象かカメラ/アルバム等で階層が深い-Recurse を使う

PowerShell(簡易版)

以下をそのまま貼り付け、$folderだけ自分のフォルダに変更して実行します。

$folder = "C:\Photos\Import"  # スマホからコピーした先

# 変更前を確認(抜粋)
Get-ChildItem $folder -Recurse -File -Include *.jpg, *.jpeg, *.mp4 |
  Select-Object FullName, CreationTime, LastWriteTime |
  Sort-Object LastWriteTime |
  Select-Object -First 20 |
  Format-Table -AutoSize

# 作成日時を更新日時に揃える
Get-ChildItem $folder -Recurse -File -Include *.jpg, *.jpeg, *.mp4 |
  ForEach-Object {
    $_.CreationTime = $_.LastWriteTime
  }

# 変更後を確認(抜粋)
Get-ChildItem $folder -Recurse -File -Include *.jpg, *.jpeg, *.mp4 |
  Select-Object FullName, CreationTime, LastWriteTime |
  Sort-Object LastWriteTime |
  Select-Object -First 20 |
  Format-Table -AutoSize

実運用のコツ

  • 大量ファイルに一気に適用する前に、10〜50件程度のテストフォルダで挙動を確認すると安心です。
  • HEICやMOVもあるなら拡張子を追加します(例:-Include *.heic, *.mov)。
  • 「写真はOKだが動画だけズレる」場合は、次のEXIF/メディア情報ベースの方法が効くことがあります。

厳密版:EXIF/メディア情報の「撮影日時」から復元する

写真はEXIFに「撮影日時(Date taken)」が入っていることが多く、動画もMP4のメタデータとして「Media created」に相当する日時が入っている場合があります。これらをWindowsのプロパティから読み取り、CreationTimeとLastWriteTimeを両方とも撮影日時に上書きするのが厳密版です。

この方法が向くケース

  • 加工・編集・再保存などで更新日時が当てにならない
  • 写真整理ソフトが「撮影日」ではなく「作成日時」を強く参照する
  • 写真と動画を混在で整理したい(同じ軸で並べたい)

注意点

  • メタデータが入っていないファイルは日時が取れず、スキップ(または更新日時を採用)になります。
  • 同じフォルダ内に大量のファイルがあると処理に時間がかかることがあります。
  • まずは必ずテストフォルダで試してください。

PowerShell(EXIF/メディア日時を優先して反映する例)

Windowsのプロパティシステムから「写真の撮影日」「メディア作成日」を取得し、取れた場合に両方のタイムスタンプを更新します。取得できない場合は更新日時を採用する形にしています。

param(
  [string]$Folder = "C:\Photos\Import",
  [string[]]$Extensions = @("*.jpg","*.jpeg","*.mp4","*.mov"),
  [switch]$UseLastWriteAsFallback = $true
)

# Shell.Application を使ってWindowsの詳細プロパティを読む
$shell = New-Object -ComObject Shell.Application

function Get-TakenDateFromShell([System.IO.FileInfo]$File) {
  $dir  = $shell.Namespace($File.Directory.FullName)
  $item = $dir.ParseName($File.Name)
  if (-not $item) { return $null }

  # 写真: Date taken(撮影日)
  $dateTaken = $item.ExtendedProperty("System.Photo.DateTaken")
  if ($dateTaken) { return $dateTaken }

  # 動画など: Media created に相当するプロパティ(環境により取得できないことがあります)
  $mediaDate = $item.ExtendedProperty("System.Media.DateEncoded")
  if ($mediaDate) { return $mediaDate }

  return $null
}

Get-ChildItem $Folder -Recurse -File -Include $Extensions | ForEach-Object {
  $f = $_

  $takenRaw = Get-TakenDateFromShell $f
  $targetDate = $null

  if ($takenRaw) {
    try {
      $targetDate = [datetime]::Parse($takenRaw.ToString())
    } catch {
      $targetDate = $null
    }
  }

  if (-not $targetDate -and $UseLastWriteAsFallback) {
    $targetDate = $f.LastWriteTime
  }

  if ($targetDate) {
    # 両方を撮影日時へ
    $f.CreationTime  = $targetDate
    $f.LastWriteTime = $targetDate
  }
}

"完了: $Folder"

うまくいかないときの対処

  • 動画のメタデータが取れない場合:そのファイル自体に日時が入っていない可能性があります。その場合は「簡易版(作成日時=更新日時)」のほうが現実的です。
  • タイムゾーンでズレる場合:海外旅行などで撮った写真は、端末設定や撮影アプリの仕様で時差が混ざることがあります。数枚を目視確認し、必要なら補正(+9時間など)を検討します。
  • 同名ファイルが多い場合:コピー時に上書き・リネームが発生すると、意図しないファイル構成になります。インポート先は日付フォルダ(例:2025-12)などで分けると安全です。

robocopyで「日時を保持してコピー」したい場合の前提と限界

robocopyは非常に強力ですが、基本的にソースと宛先が「ドライブ文字付きパス」として扱えることが前提です。

スマホをUSBで繋いだのに、コマンドプロンプト上でドライブ(例:E:)として見えず、「ソースパスが存在しない」になってしまうのは、MTP接続でWindowsが「通常のファイルシステム(ドライブ)」として提供していないのが主因です。iPhoneも同様に、通常のドライブパスとして扱えない環境が多いです。

robocopyが使える代表例

  • SDカードをカードリーダーでPCに挿して、ドライブとして認識されている
  • USBマスストレージとしてドライブ化できている(端末や設定、ツール次第)
  • ネットワークドライブ(SMBなど)としてマウントできている

robocopyの例(タイムスタンプを重視)

タイムスタンプ(T)が含まれるように指定します。フォルダの時刻も揃えたいなら/DCOPY:Tも加えます。

robocopy "D:\DCIM" "E:\Backup\DCIM" /E /DCOPY:T /COPY:DAT
  • /E:サブフォルダ込み(空フォルダも含む)
  • /COPY:DAT:データ・属性・タイムスタンプ(通常これが基本)
  • /DCOPY:T:ディレクトリのタイムスタンプもコピー

ただし、スマホがMTPのままでドライブパスとして見えない場合、robocopyで直接コピーするのは現実的ではありません。その場合は「いったん普通にコピー→PowerShellで整える」が最短です。

robocopyが使えないときの代替コピー方法

コピー手段は「確実にPCへ持ってくる」ことを優先し、日時の整形はあとで行うのが安定します。

方法メリットデメリット日時を整えるコツ
エクスプローラーでコピー(MTP)追加ツール不要で手軽作成日時がコピー時刻になりやすい簡易版スクリプトで作成日時=更新日時にする
ZIPに圧縮してからコピー→解凍ファイル数が多くても転送が安定しやすい解凍後の作成日時はPC側になりがち解凍後に簡易版/厳密版を適用
ブラウザ転送(例:同一LANの送受信)ケーブル不要、OS差が出にくい大量だと時間がかかる/作成日時は新規になりがちEXIFが残るなら厳密版で復元しやすい
クラウド同期(OneDrive/Googleフォト等)自動バックアップになりやすい取り込み方法によりファイル日時の挙動が変わる最終的にPC上で統一したいならPowerShellで整える

失敗しないための実務的チェックリスト

  • 本番適用の前に必ずテスト:同じ構成の小フォルダ(例:100枚)で確認してから全体へ。
  • 上書き事故を防ぐ:インポート先は「日付フォルダ」「端末名フォルダ」などで分け、重複を避ける。
  • フォルダ単位でバックアップ:日時変更前の状態を戻せるよう、外付けHDDや別ドライブへ退避してから実行する。
  • 動画の例外を想定:機種やアプリによって、動画の「Media created」が取れない/ズレることがある。ズレたら簡易版へ切り替える判断も重要。
  • エクスプローラーの列を使い分ける:整理目的なら「撮影日」「更新日時」列も活用し、どれが実態に近いかをまず見極める。

結局どれが正解?目的別のおすすめ

迷ったら、次の選び方が堅いです。

あなたの目的おすすめ理由
並び替えができれば十分(ざっくり撮影順でOK)エクスプローラーコピー+更新日時で運用追加作業ゼロで実用になることが多い
作成日時も撮影日時に揃えたい(写真も動画も)簡易版(作成日時=更新日時)最短で整う/処理が速い/成功率が高い
編集済みが混ざっていて更新日時が信用できない厳密版(EXIF/メディア情報から復元)撮影日時を直接参照できる可能性が高い
robocopyで完全に管理したいスマホをドライブ化できる構成を作るrobocopyはドライブ前提。MTPのままだと難しい

スマホの接続方式(MTP)に振り回されずに、PC側でタイムスタンプを整える発想に切り替えると、写真も動画も、サブフォルダもまとめて整理しやすくなります。まずはテストフォルダで簡易版を試し、必要なら厳密版へ進めるのが、失敗の少ない王道ルートです。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次