Goodreaderへのファイル転送で、Error writing to file エラー。原因と解決策は、濁点・半濁点文字
iPadアプリ Goodreaderを多用して、便利に使っている。それが使えなくなった。
これまで問題なかったはずのファイル名に含まれる濁点・半濁点文字を排除したら、障害は解決した。
デスクトップコンピュータで収集したファイルを整理して、クラウドドライブのdropboxにまとめ、それへGoodreaderから接続してファイル転送。電子資料簿として重宝。
ところが、最近遭遇するようになった Error writing to file エラー。ファイル名の文字列数が、フォルダを含め多すぎたのだろうか?機種依存文字でもファイル名に含ませたのだろうか。
Dropboxのヘルプには、リンクされている別のパソコンで同期されないファイルがある場合というページがあることが分かり、どの中の「不良ファイル チェック ツール」で、使ってはいけない文字 /(フォワードスラッシュ)や<(それ以下)、:(コロン)、|(垂直線)を含んだファイル名を検出してくれる。
しかし、使用してはならない文字を含んだファイル名を私は使っていないことを、確認できた。フォルダ構造を含めたファイルの置き場所(パス)の長さもこれでもかと切り込んでいるのに。Dropboxが言っている218 文字を超えるものはないはず。
もう少し、ウェブ検索を続けると、こんなつぶやきが。
iOS10.3で不具合の出るアプリは、APFS関連の影響かも(Unicode Normalizationの振る舞いが変わったらしい)。GoodReaderとDropboxの同期でエラーが出るようになったのだが、ファイル名に濁点を含むファイルを除いたら同期できるように。
— 山路達也 (@Tats_y) 2017年3月29日
意味がよく分からなかった。ネタかと思ったが、
にあるように、システムの深いところに原因があるようなので、つぶやきを真に受けることにする。確かに、今回転送しようとしているファイルの中には、その名前に 濁点・半濁点のカタカナを含むものがあった。それを潰していくことにした。そうしてから、改めて Goodreaderの同期をすると、以前の通りに同期ができた。
いったいこれはなんなのだろうか。
iOSのファイルシステムが、iOS10.3を期に、HFS+からAPFS(Apple File System)に変わり、ファイル名に用いられる文字の扱いについて NFD (Normalization Form Canonical Decomposition 正規化形式D)が変わったらしい。
( 私には何のことか、消化できない。)
ファイルシステムが HFS+からAPFS(Apple File System)に変わったのは、iOSがそうなったものであり、macOSはこれからなのだそうだ。そのファイルシステム変更時に、世の中で変なことが起きなければよいが。