OneDrive 同期後の " - コピー"ファイルについて

2025/06/19


概要

OneDriveが気づかないうちにWindowsのデスクトップをOneDriveフォルダー配下に配置するため、Outlookなどアプリの不具合が発生する。また、画像編集などの際にいちいちクラウドと同期するために大幅なパソコンの性能低下を強いられる。しばらくOneDriveの同期を止めていた。こちらの不注意かとは思うが気づかないうちに再度稼働してしまうことがある。デスクトップはバックアップの対象から外したつもりだったか、またしてもデスクトップがOneDriveの下になってしまった。

そもそもバックアップと言いながら、知らないうちにそのバックアップが本番と入れ替わる、など世間の常識とはかけ離れている。

わずらわしいのでOneDriveアプリそのものを削除したが、MicroSoft 365の契約を継続しているためOneDriveのクラウドストレージ1TBを使わないのはもったいない。

通常はMicroSoft 365の契約がなければデフォルトの5GBのクラウドストレージを提供しておき、足りなくなると増強するのは有料だという。確かにクラウド環境を使いこなせばよいことはわかるがいかにもMicroSoftらしいやり方である。

バックアップ用のハードテスクもいちいち接続するのも面倒で残容量も少なくなって来た。せっかくOneDriveの機能を使わないのは惜しい、ということでMicroSoftの方針に従うことにしたが大量の - コピーフアイルの発生に見舞われた。😠

OneDriveについて(再掲載)

2年ほど前にノートパソコンの買い替えのときに掲載した情報。

① 一般的なクラウドストレージについて

OneDriveの概念図

進化するデータ管理――クラウドストレージの5つの利点 USBメモリや外付けハードディスクに頼っていた時代は終わった。インターネットの普及と共にデータ管理の主役となったのがクラウドストレージである。ファイルをネット上に保存し、複数のデバイスからアクセスできるこの技術は、ビジネスから日常生活まであらゆる場面で活用されている。ここでは、その主な利点を5つ挙げて整理する。 1. どこからでもアクセス可能 クラウドストレージの最大の強みは、場所に縛られずにファイルへアクセスできる点だ。スマートフォン、ノートPC、タブレットなど、インターネット接続さえあれば、世界中どこからでもデータを利用できる。移動の多いビジネスパーソンにとって、オフィスに縛られない働き方を可能にするインフラとも言える。 2. 自動バックアップと災害耐性 ローカル保存の機器が故障すれば、データは一瞬で失われるリスクがある。クラウドストレージは複数のサーバーにデータを分散保存するため、災害や障害が発生しても復旧の可能性が高い。PCのクラッシュ、紛失、盗難といったトラブルへの備えとしても有効だ。 3. 柔軟な容量管理とコスト効率 物理ストレージのような容量制限はなく、必要に応じて保存容量をスケールアップできる。月額制・従量課金制のサービスが多く、初期投資を抑えつつ、使った分だけ支払う運用が可能。個人利用から大規模な企業導入まで対応できる柔軟性がある。 4. チームでの共同作業に最適 複数人で同時にファイルを編集できるリアルタイム共同作業機能は、従来のファイル送受信の手間を大幅に削減する。Google ドライブやMicrosoft OneDriveなどでは、編集履歴の追跡やアクセス権限の管理も可能で、情報共有とセキュリティを両立できる。 5. 高度なセキュリティ機能 データがインターネット上にある以上、セキュリティの確保は不可欠。大手クラウドストレージサービスは、通信の暗号化、データの保護、多要素認証、アクセス制限など、最新のセキュリティ対策を取り入れている。特に企業ユースにおいては、コンプライアンスやプライバシー保護の観点からも評価が高い。 データの未来はクラウドにある クラウドストレージは単なるファイル保存手段ではない。柔軟なワークスタイルを支え、情報の可搬性と安全性を高め、そしてチームの生産性を引き上げる。物理メディアに依存していた過去と比べて、クラウドは確実に「新しい当たり前」となった。今後もテクノロジーの進化と共に、その役割はさらに広がっていくだろう。

② 通常のWindowsのフォルダー階層はエクスプローラーで見るとデスクトップまで次のようになっている。
 ・PC > WIndows(C) > ユーザー > akagawa(ユーザーが設定した名前) > デスクトップ
 OneDriveを使うと
 ・PC > WIndows(C) > ユーザー > akagawa(ユーザーが設定した名前) > OneDrive > デスクトップ
となり、OneDriveがデスクトップの前に割り込んでいる。

何が問題かというとすでに導入しているアプリや、自分で作成したプログラムなどでは使用するファイルのパスを指定しているものがあり、OneDriveが割り込んだためにエラーになる。Outlookなども同様。まさかこのような仕様になるとは思わなかった。

③ OneDriveのファイルごとに付くアイコンの意味。

i-con状態操作

赤い丸に白いバツ
同期出来ない詳細はOneDrive 通知領域アイコンに表示される。アプリなどは必要に応じて再導入する

矢印の丸
同期中同期が完了すると、別のアイコンに変わる。

青い雲
オンライン上のOneDriveにのみ保存、パソコン内には保存されてない。パソコンの容量を占有しない

緑の丸に緑のチェックマーク
パソコン内に保存。インターネットに接続しなくても利用可能。 オンラインのみのファイル(青い雲)を開くと、ファイルがパソコンにダウンロードされて、本状態(白丸緑チェックマーク)になる。
ファイルを右クリックし、表示されるメニューから「空き領域を増やす」をクリックすると、オンラインのみのファイルに戻すことができる。放置した場合「設定」>「記憶域」>「記憶域の管理」>ストレージ センサーの設定でパソコンから自動削除できる。

緑の丸に白のチェックマーク
パソコン内に保存。インターネットに接続しなくても利用可能。 ファイルを右クリックし、表示されるメニューから「このデバイス上で常に保持する」にチェックマークを付けたファイルが本状態になる

人のアイコン
ファイルまたはフォルダーが他のユーザーと共有されている状態を示す

大量の - コピーフアイルの発生

デスクトップには5万以上のファイルが存在する。

10時間ほどOneDriveの同期が終わるのを待ってデスクトップ上のフォルダーを覗くと次なる課題が現れた。初めてOneDriveを試した時と同様のトラブルが発生した。

大量の - コピーファイルが発生している。フォルダーのなかに abc.jpg というファイルがあると abc - コピー.jpg というファイルが作られる。

これはデータの消失を防ぐために意図的に設計された動作であり、「どちらの変更が正しいかわからない状況では、両方保存してユーザーに判断を委ねる」ことがMicrosoftのポリシーになっている。ということらしい。えっ、OneDriveはファイルを同期して常に最新にするとあったようだが違うらしい。多分、そんなことだと思った。


" - コピー"ファイルを削除する方法

削除する前の考慮事項

" - コピー"ファイルを削除しようとして気がついたのだが、フォルダーに 例えば rosehall.css と、rosehall - コピー.css というファイルがあって、" - コピー"ファイルを無条件に削除するとある期間の更新が抜け落ちるという例。確かに rosehall.css を最近更新した。同様のケースが結構あった。 これについては、後述の - コピーファイルとオリジナルファイルの更新日がことなる場合の対処手順を参照。

更新日時が異なる


手動で一括削除

削除方法 ・方法1:もっとも簡単な方法 

    手動
  • 該当のフォルダーを開く
  • 検索欄に *- コピー* と入力する
  • Ctrl + A で表示されている項目だけが選択される
  • Deleteキーで削除

・方法2:PowerShell*で " - コピー" ファイル一覧を表示するリストを作成し、確認後リストにあるファイルの削除を実行。(*Windowsキー + R で "powershell"と入力する) 1). フォルダー内の" - コピー"を含むファイル名一覧のcsvファイルを作成するためのPowerShellスクリプトを実行する。(ターゲットフォルダーを正しく指定する。ここでは testというフォルダー名)

$targetPath = "C:\Users\bluebee\OneDrive\デスクトップ\test"
$outputPath = "C:\Users\bluebee\OneDrive\デスクトップ\コピー一覧.csv"
Get-ChildItem -Path $targetPath -Recurse -File |
Where-Object { $_.Name -like "*- コピー*" } |
Select-Object FullName |
Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8

2). 一覧にあるファイルを削除する

# CSVファイルのパスを指定(必要に応じて変更) $csvPath = "C:\Users\bluebee\OneDrive\デスクトップ\コピー一覧.csv" # CSVを読み込んでファイルを削除(FullName列からパス取得) Import-Csv -Path $csvPath | ForEach-Object { $filePath = $_.FullName if (Test-Path $filePath) { Remove-Item -Path $filePath -Force Write-Output "削除しました: $filePath" } else { Write-Output "見つかりません: $filePath" } }

- コピーファイルとオリジナルファイルの更新日がことなる場合の対処

更新日が違うファイルに ✔ をマークしてCSV出力を作成するpowershellスクリプト

$targetPath = "C:\Users\bluebee\OneDrive\デスクトップ\test\"
$outputPath = "C:\Users\bluebee\OneDrive\デスクトップ\コピー比較一覧.csv"

$allFiles = Get-ChildItem -Path $targetPath -Recurse -File
$comparisonList = @()

foreach ($file in $allFiles) {
    if ($file.Name -like "*- コピー*") {
        $baseName = $file.BaseName -replace " - コピー", ""
        $ext = $file.Extension
        $originalName = "$baseName$ext"

        $originalFile = Get-ChildItem -Path $file.DirectoryName -File |
                        Where-Object { $_.Name -eq $originalName }

        if ($originalFile) {
            $timeDiff = [Math]::Abs(($file.LastWriteTime - $originalFile.LastWriteTime).TotalMinutes)
            $isDifferent = if ($timeDiff -ge 1) { "✔" } else { "" }

            $comparisonList += [PSCustomObject]@{
                Directory        = $file.DirectoryName
                OriginalFile     = $originalFile.Name
                OriginalUpdated  = $originalFile.LastWriteTime
                CopyFile         = $file.Name
                CopyUpdated      = $file.LastWriteTime
                IsDifferent      = $isDifferent
            }
        }
    }
}
$comparisonList | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8

* TotalMinutes を使って更新日の差を「分単位」で計算、1分以上の差がある場合に「✔」を表示、 微妙なミリ秒や数秒の違いでは「✔」が付かないため、実質的な違いがあるファイルだけがマークされる。

コピー比較一覧.csvサンプル

コピー比較一覧.csv

✔のないファイルだけを削除するスクリプト

# コピー比較一覧.csvのパス
$csvPath = "C:\Users\bluebee\OneDrive\デスクトップ\コピー比較一覧.csv"

# ✔のないコピーだけ削除
Import-Csv -Path $csvPath | Where-Object { $_.IsDifferent -eq "" } | ForEach-Object {
    $copyFilePath = Join-Path $_.Directory $_.CopyFile

    if (Test-Path $copyFilePath) {
        Remove-Item -Path $copyFilePath -Force
        Write-Output "削除しました: $copyFilePath"
    } else {
        Write-Output "見つかりません: $copyFilePath"
    }
}

Office製品の同期

OneDriveの同期を調べているうちに、office製品ではある程度の仕組みが考慮されているらしい。

OneDriveでファイルを同期する際の整合性を保つために、Microsoft Office製品では更新の競合が起きないような仕組みになっていますか?

はい、Microsoft Office製品(特にWord、Excel、PowerPointなど)は、OneDriveとの連携時にファイルの競合を最小限に抑えるための仕組みが組み込まれています。その代表的な仕組みが以下の通りです:

機能同時編集編集ロック 競合時の動作
Word / PowerPoint なし自動マージ、または選択促し
Excel △(一部)セル単位 競合部分を別バージョン提示
ローカルファイル+OneDriveなし 「コピー」が作成される可能性

感想

結局、OneDriveを使用することになった。今回はこれを機会にOutlookも新しいものを使うことにした。が、新しいOutlookも様々な不具合が発生。さらに画像編集アプリがOneDriveからブロックされて画像が読み込めず......🥹

戻る