OneDriveでファイル名に使えない”/”や空白に悩まされる

OneDriveでファイル名に使えない”/”や空白に悩まされる

昨日Macに導入したOneDriveだが、なかなかクラウドへのアップロードが進まないうえに、ファイル名に問題があってOneDriveへのアップロードや同期ができないという問題が発生したため、いちいちファイル名を変更しなければいけなくなった、というお話。

一晩経ってもOneDriveにアップロードできていない!?

昨日、MacにOneDriveを設定し、お仕事ファイルをフォルダごとOneDriveの共有フォルダに放り込んだ。そのままビールをかっ喰って翌朝にはそこそこファイルがアップロードされてい……るはずだったのだが、どうにも現在同期中を示す、二つの矢印が円を描いているマークばかりが並んでいてよろしくない。おまけにアップロードに失敗した赤地に白抜きのバツ印も数多く見受けられるではないか。はたしてこれはいかなる不手際であろう。

まずはOneDriveにアップロードが進んでいない理由を切り分ける

ここで問題なのは以下の2点だ。

  1. 一晩経っているのに同期中のマークがほとんど減っていない
  2. 同期失敗のマークがかなりの量存在する

そこで、この2点のうち、まずはOneDriveの同期中のマークが多すぎる問題を解決することにした。

解決策1: 省エネルギー機能を停止する

一晩経ってもほとんど同期できないでいる理由はいくつか考えられる。

  1. 回線速度が遅くてクラウド上のOneDriveとの同期がなかなか進まない
  2. 転送するファイルサイズが小さすぎてファイル転送の速度が出ない
  3. 一晩中OneDriveに向けて転送せずに、転送をサボっていた

このうち、1番と2番については正直改善の余地がない。そこで3番について確認してみた。

「システム環境設定」を立ち上げ「省エネルギー」を選ぶ。当然のことながら、「ディスプレイをオフにするまでの時間」は10分になっており、「ディスプレイがオフのときにコンピュータを自動でスリープさせない」はオフになっていた。

つまりiMacの前を離れると10分でディスプレイが消え、同時にコンピュータがスリープするため、OneDriveとの同期が止まっていたのだ。それでは私が一晩寝ている間に、iMacも同様にスリープしているのだから、OneDriveにファイルが上がって同期できているワケがない。

そこで「ディスプレイがオフのときにコンピュータを自動でスリープさせない」をオンにして、ディスプレイが10分で暗くなってもiMacがせっせとファイルをOneDriveにアップロードできるように整えた。これでOneDriveと同期できないという症状は解消され、一晩放っておけば、かなりのファイルがOneDrive上にアップロードされるはずだ。

解決策2: ファイル名を変更する

OneDriveを運用する上でのもうひとつの問題は、ファイルが同期できないでいることを示す赤いバツマークがいくつも表示されるということだ。メニューバーのOneDriveのアイコンをクリックすると、以下のような表示が現れる。

なるほど、ファイル名に「許可されていない文字が含まれてい」るらしい。早速、OneDrive で無効な文字を含むファイルの名前を変更できる – Office サポートを見てみると、ファイル名の先頭にスペースがあったり、ファイル名にスラッシュやバックスラッシュが含まれているとOneDriveにアップロードができない、つまり同期できないらしい。

ファイル名の先頭のスペースを削除する

このうちファイル名の先頭のスペースなどは、上掲の赤い表示部分をクリックすると自動的に変更できるらしい。

ファイルとフォルダーの名前を自動的に変更するオプションは、次の問題がある名前にのみ表示されます。

OneDrive で無効な文字を含むファイルの名前を変更できる – Office サポート

とあり、自動的に問題のあるファイル名を変更できるものとして、

  • 名前の先頭または終わりがスペース
  • ピリオドで終わる名前
  • サポートされていない Unicode コード ポイント を含 む名前
  • 代理人ペア の問題を 含む名前

の4つが挙げられている。

だが、どうやらこれはWindowsでの機能らしく、私のiMacでは全く機能してくれなかった。仕方がないので手動で先頭にあるスペースを削除していくことにした。そこで実際にファイル名の先頭にスペースが入っていた例を下に挙げる。正直まったく見分けがつかないが、p179.psd〜p186.psdまでを半信半疑で先頭部分でDeleteを押すとスペースらしきものが削除できてしまった。

その結果、赤いバツマークが、しばらく時間を置くと緑のチェックマークへと変わってくれた。

ただし、ファイル名の先頭にスペースが入っていたのはここだけではなかった。私は、仕事中によく使うファイルは上の方に固まっていてほしいので、そうしたファイルはあえて先頭にスペースを入れて上に上がるようにしていた。

作業が終われたスペースは削除していいのだけれど、これまでは特に不都合はなかったのでそのままになっていたファイルが結構あったのだ。仕方がないのでそれらをひとつずつ手作業で直していく。

MacのFinderのリネーム機能でスペースをnullに置換するという手も使えないことはないのだが、先頭以外でもスペース入りのファイル名を使っているファイルも少なくないので、そう簡単ではない。もちろん正規表現が使えるファイル名置換アプリを使えば可能なのだが、今回のためだけにそうしたアプリを探すのも億劫で、結局ひとつずつ手作業で処理してしまった。後になって思えば、スペースをアンダーバーで置換しておけば良かったのだし、実際WindowsでOneDriveを使う場合にはそうした置換を自動で行ってくれるらしい。

なにはともあれ、ファイル名の先頭にスペースがあるという問題は、これで解決した。

OneDriveにとって不適切な文字を削除・変更する

とはいえ、OneDrive上で扱えないファイル名は、先頭と末尾のスペースだけではない。

microsoft 365 のOneDrive、 職場または学校の OneDrive 、 Microsoft 365、SharePoint では、次の文字は使用できません。

” * : < > ? / \ |

OneDrive で無効な文字を含むファイルの名前を変更できる – Office サポート

私の場合、このうちの”/”が少なからず引っ掛ってしまった。というのも、仕事の関係で「Fate/xxxx」がついたファイル名がいくつもあったためだ。

幸い、これについては”/”をスペースに置換することで簡単に対応することができた。

また、文字化けしたファイル名の中に”|”が含まれている場合や、目視できないけれどもなにやら変なコードが含まれているらしい場合があった。これらについては、いろいろ弄った挙句に事態が改善しなかったため、適当なファイル名をつけてごまかすことにした。ありがたいことに、いずれも古い仕事のファイルだったので、名前を書き換えたところで大きな問題は起きずに済みそうである。

一応これでアップロードに問題のあるファイル名は消え失せたはずだ。ただ、ファイル名を正しく変更しても、Finder上ではすぐに赤いバツマークが同期中のマークに変わってはくれない。どうやらOneDriveがファイルを走査するにはそれなりに時間がかかるようなのだ。

無事にファイル名を変更したファイルがOneDriveにアップロードされ同期できた、もしくは同期できるようになったかを確かめるにはもう一晩寝て待つ必要があるようだ。

OneDriveを導入するときにはファイル名の変更を!

今回のトラブルを見てもわかるように、ファイル名の先頭や末尾にスペースを使えなかったり、スラッシュやバックスラッシュを含んだファイル名を使えないというのは、MS-DOSの昔からあるMicrosoftのファイル名の縛りである。そんなMicrosoftのクラウドストレージであるOneDriveを、ファイル名にこうした縛りのないMacで利用するのだから、どうしたって不都合は生じてしまう。

Windowsを離れて10年近くが経ち、今回はその辺りの意識が足りなかったと思う。

そんなワケだから、もし今後MacユーザーがOneDriveを使う気になったら、置換アプリを使って、

  1. 先頭と末尾のスペースを削除しておく
  2. ” * : < > ? / \ |を_(アンダーバー)辺りに置換しておく(その後友人から全角に置換することを勧められた)

ことを強くお勧めする次第だ。

後日談

その後、一晩寝たにもかかわらず、メニューバーのOneDriveアイコンではファイル名を変更したはずのファイルも同期できないままになっていた。メニューバーのOneDriveアイコンをクリックすると、転送は終わっているらしいのに、だ。

そこでiMacを再起動すると、なんとか無事にOneDriveの表示がオールグリーン(一部雲)となった。

これで差し当たってはOneDriveの運用立ち上げに成功したとみていいだろう。

今後問題が起きれば追記なり、新たに記事を起こすなりしたいと思う。