はじめに
たまには普通の記事も書きますよ。
最近会社で「Box」というファイルストレージサービスを使い始めました。「DropBOX」じゃありません、「Box」です。これは主に企業で使われることの多いサービスで、有料プランは容量無制限、さらに特に高いセキュリティが一定の評価を得ている…らしいです。
ところが、使い始めたら、Macのちょっと古いファイルやフォルダなどが、エラーが出まくってアップロードできず、困ってしまっていました。色々調べた挙句、ようやく 原因のパターンを突き止めることができました。
ニッチな情報で需要があるかはわかりませんが、Macユーザーが「Boxでエラーでまくって碌にアップロードできなーい」とお悩みなお方への一助になれば、そして自分への備忘録としてこの記事を書きました。
で、Mac特有のファイル名のつけ方に起因するのかと思ったらやっぱりそうでした。以下にBoxでMacからアップロードできない条件を述べていきます。
1.ファイル名、フォルダ名の末尾が半角スペース(空白)である
Macからのアップロードエラーで最も多い原因がこれです。名称の先頭の空白は大丈夫です、ダメなのは末尾の空白です。フォルダ名の場合がほとんどで、ファイル名の場合はアプリが拡張子をつけてくれるので割合としては稀です。
ま、これはサポート文書でも明示されているんですけどね(一応先頭の空白もダメっと書かれていますが、これはアップロードはできちゃいます)。
対処法
対処法とは言っても、ファイル名、フォルダ名の末尾の半角スペースを削除するだけで、これであっさりとアップロードできます。
と言うか、Windowsユーザーから見たら、「Macはファイル名の末尾を半角スペースとかできちゃうんだ」って感じでしょうが、できちゃうんですよ。「スペース」ってのが質(たち)が悪いんですよ、パッと見てわからないですからね。
で、「末尾の半角スペースを削除するだけ」って書きましたが、ファイル1個だけアップするならいざ知らず、フォルダごとアップロードしたりする場合、中のファイルのどれが該当するか一目で判らないし、このあと何個もフォルダ単位でアップロードする予定の場合、どこに何個こんなフォルダやファイルがあるか判らないときとか、うんざりしますよね。
そこでMacOSの機能で、ファイル名、フォルダ名の末尾の半角スペースを、一括検索置換する方法をご紹介します。
名前の末尾がスペースのファイル、フォルダを検索、一括置換する方法
- アップロードしようとしているフォルダを開いておき、ショートカット、「コマンド+f」を実行します。尚、ウインドウ右上の検索窓は使いません(ここでは検索置換できないので)。
- ウインドウの最上部付近、「検索:」と書かれた場所で、検索の対象がこのフォルダになっているか確認します。「このMac」になっていたら対象のフォルダを選択して下さい。
- 「種類」が「任意」となっているポップアップの「種類」を「名前」に、「任意」が「一致」に変わりますのでここから、「で終わる」に変更します。そして、現れた検索窓に「半角スペース(空白)」を入力します。
- スペースを入れると条件に合ったファイル、フォルダがリストにぞろぞろと現れます。
- これらを全選択して右クリック(またはオプション+クリック)し、「◯項目の名前を変更…」(◯内は選択した項目数)を選択します。
- 「Finder項目の名前を変更:」と言うウインドウが表示されます。「フォーマット」と書かれているポップアップメニューを「テキストを置き換える」に変更します。
- 文字列を置換するウインドウになりますので、「検索文字列」の欄にスペースを一個だけ入力します。「置換文字列」には何も入れません。ここで、「名前を変更」ボタンをクリックします。
- 「名前を変更」ボタンをクリックすると、リストからどんどん項目が消えていきます。末尾の空白がうまく削除されて、検索条件に合致しなくなるからです。これで、ファイル名、フォルダ名末尾の空白を一括削除できたことになります。
2.フォルダ名、ファイル名に「」や「」が使われている
Macでしか使えない文字、「」「」とか使ってしまうと、当然ながらエラーになります。ですが、「◉◎●◯⚪️⚫️⭕️」とかは大丈夫なのでわけがわかりません。
対処法
まあ、Mac特有の記号類は使わないことにするのが良いと思います。ちなみにこの場合も上記の方法で、一括で名称を変更できます。
3.カスタムアイコンが使われている
カスタムアイコン、これ昔多用されていました。このカスタムアイコン付きのファイルやフォルダもアップロードできません。カスタムアイコンのついたファイル、フォルダを選択してコマンド+i、開かれたウインドウの左上のカスタムアイコンを選択してデリートすることによって、削除することができますが、これも1つ1つこれを行うのは難儀です。
対処法
カスタムアイコンのファイル、フォルダが一箇所にまとまっている場合は、以下の方法で一括削除できます。
ファイル等を全部選択してカスタムアイコンを一括削除
カスタムアイコンのファイル、フォルダを全選択し、optionキーを押しながらOSのプルダウンメニューの「ファイル」から「インスペクターを表示」を選択します。「インスペクターを表示」はoptionキーを押さないと出てきません。
すると全てがまとまったウインドウが一つ表示され、ここで、左上のアイコン選択>削除(デリートキー)することによっていっぺんに削除できます。
カスタムアイコンを検索して一括削除
カスタムアイコンがどこにあるかわかず、あちこちにあるかもしれない時は、検索して一括で削除したいところです。実は上記の「前の末尾がスペースのファイル、フォルダを検索、一括置換する方法」を応用してカスタムアイコンを削除することができます。検索の欄に「icon」と入れて検索すると、対象のフォルダ等にカスタムアイコンが設定されていると以下のようになります。
検索されたこの「Icon?」と言うファイルがカスタムアイコン本体なので、リストされたこれらを選択し、削除すればカスタムアイコンが消えて元に戻ります。ただ単に名称に「Icon」と言う文字列があるだけのファイルも一緒にリストされてしまうので、これらは消さないように注意して下さい。
4.Yosemiteのバグでファイル名に何かが追加されてしまっている
カスタムアイコンは設定していない、特殊な文字列を使っていない、末尾に半角スペースがあるわけでもないのに、エラーでアップロードできないことがあります。
実は目に見えない文字列がファイル名、フォルダ名に潜んでいることがあります。MacOS 10.10 (以下Yosemite) のバグにより、意図しない制御文字が挿入されてしまうことがあるのです。
上記リンクに詳しいことが書いてありますが、ある特定の手順を行うと文字列に見えない制御コード「バックスペース」が挿入されてしまいます。通常このような制御コードはファイル名に使用できませんが、Yosemiteのバグにより作成されてしまうのです。
一応ファイル名のこの箇所にカーソルを入れて左右に動かすと、そこでキャレットが止まって、見えない何かあることは確認できるのですが、文字列のどこにあるか分からないのというのは始末が悪いです。これがファイル名の先頭や末尾にあると全く分かりません。
Boxでエラーが出たときに、ファイル名は一見問題なさそうなのに、エラーが出るときにはまずこれを疑いますが、目に見えません。そこで、このファイル名の文字列を全選択コピーして、GoogleChromeかFireFoxのURL欄にペーストすると姿を表します(Safariではダメでした)。
または、これらが表示できるエディター、「Sublime Text」などの新規ファイルにペーストしても確認できます。因みに「CotEditor」は表示できるものの、ただのはてな(?)になってしまい、「mi」や「Atom」では表示できませんでした。
対処法
これもこの制御コードを削除すればアップロードできるようになります。見えませんが「Safari」以外のブラウザの検索窓で確認できたそれを消して、コピペでファイル名を変更すればアップできるようになります(または手動で打ち直す)。
で、一括置換の方法ですが、この制御コード(バックスペース)を先ほどの検索置換ウインドウに、キーボードから入力できないので、先ほどのブラザウザにペーストした文字列から「DEL」の部分をペーストすることによって検索置換は可能です。検索文字列に「DEL」の部分をペースト(見えませんが)、置換文字列欄を空白にしておけば、一括で検索置換が可能です。
今度起きた時のために、この問題の名前を持つファイルなりフォルダなりを「BOX_NG」フォルダとか作って、取っておくと次に対処できます(笑)。
5.ファイル名、フォルダ名に改行がある
驚いたことに、Macの場合、MacOS9まではファイル名、フォルダ名に改行を入れて2行にすることが可能でした。現在ではこのようなことは不可能で、昔のファイル名の改行部分が文字化けして「?」になってしまいます。この「?」も検索置換で一括削除が可能ですが、困ったことに文字化けした結果「?」になっているのか、実際にファイル名に「?」を使用しているのか区別がつきません。Windowsでは「?」はご法度なので、ここは諦めて検索置換で「?」を全部削除してしまうしかないでしょう。
対処法
?は全部消す
6.ファイル名、フォルダ名にバックスラッシュがある
「\」(バックスラッシュ)もエラーになってしまいます。通常Macでは「\」を誤って入力することは少ないですが、ファイル名につけてしまうことは可能です。どうも激しく文字化けしたファイル名に含まれていることがあるようです。
困ったことに先ほどの検索置換では「/」と「\」の区別がつかないようで、「\」で検索すると、「/」を含むファイル、フォルダが大量に検索されてしまいます。「『スラッシュ』は含めてもいいんかい」、って感じですが、昔のMacユーザーはこれを多用していました。テンキーだけで打てるから便利だったんですね。現在は社内ルールで禁止していますが、今だについ使ってしまう人はいます。因みにBoxでは「スラッシュ」を含むファイル、フォルダはアップロードできますが、「:」に置き換わります。
対処法
検索置換して一括で別の文字列に置き換える。そのとき「スラッシュ」も置き換わってしまうが、もうしょうがない(笑)。
7.ファイルの修正日が1970年1月1日9:01より前
ファイル名に異常がないのにアップロードできない場合がもう1つあります。それは、ファイル、フォルダの作成日、ないし修正日が1970年1月1日9:01より前であることです。ま、僕が遭遇したのは1970年1月1日9:00のケースのみでしたが。
1970年なんてMacどころか「Apple I」すら登場していないのに、なんでこんな日付になっているファイルが存在するのでしょうか。謎ですが、おそらくなんらかの理由でタイムスタンプ情報が失われてしまい、その時、ファイルが保存されていたのシステムの一番若い年月日時刻がついてしまったんでしょうかね。この時刻は「UNIX時間」というものに由来するようです(UNIX時間は1970年1月1日0:00ですが、日本時間では9:00)。
この場合、ファイルを開いて改めて上書き保存すればいいんですが、いちいち大変ですよね。ターミナルで修正日を変更する方法を紹介しているサイトがありました。
ファイルの修正日は1970年1月1日の9:01以降にすれば、アップロードできます。因みにブラウザ経由でBoxにアップロードしてしまうと、どのみちタイムスタンプは失われ、アップロードした日付になってしまうので、この日付時刻以降ならなんでもいいです。
Box Drive ならどうよ
実はBoxには「Box Drive」という、BoxをパソコンのHDDみたいに扱えるソフトがあります。ちょうどGoogleドライブの「パソコン版ドライブ」みたいなものです。
これなら一応アップロードだけは出来ます。エラーは出ますがファイルも開きますし、再ダウンロードも可能でした。でもブラウザ版では見えないですし、他のユーザーに共有もできないようです。
Googleドライブならどうよ
悔しいことにに上記の条件のファイルですが、「Googleドライブ」ではエラーなくアップロードできてしまいます(苦笑)。
ただし上記に述べたファイル名の問題は残ったままになってしまうようです(バックスラッシュや制御文字もそのまま。カスタムアイコンは消え、UNIX時間のファイルは更新日が空白になります)。
エラーでアップロードできないよりはマシかな。
まとめ
という事で、BoxはMacと相性が悪いことが判明しました。とはいっても、あくまで古いファイルを扱う場合です。当社の場合は結構古いファイルを引っ張り出す機会が多いので、上記の問題に遭遇する確率が高かったようです。最近になってMacを使い始めた環境なら、「ファイル名、フォルダ名の末尾空白」だけに気を付けていれば大きな問題はないのかもしれません。
う~ん、なんだかな。Boxはストレージ容量気にしなくて済むのが良いのですけれどもね。
コメント
ごくたまの普通の記事がずっと人気記事にランクインしているのがすごいと思っています
(自分には取り付く島のない分野ですがw)
あの記事はMac民にとって結構切実だったようです。