2014年12月17日水曜日

WindowsとMendeley・謎と恐怖のジャンクション

あかん。もうダメだ。諦めるしかない。

Mendeleyの制限(ある意味バグ?)であるところの、

「"%USERPROFILE%\AppData\Local\Mendeley Ltd\Mendeley Desktop\Downloaded"にダウンロードしたファイルをFile Organizerで移動したければ、移動先のフォルダは同じパーティション内になければならない。」

という問題について。

そもそも、いろいろな手段で入手したPDFファイルをMendeleyがFile Organizerを使って一箇所にまとめてくれる、ってのがありがたいのだが、上記の制限(バグ?)があるためにいろいろ困っている。

My Documentsとか、あれこれのデータファイルをシステムパーティション(ドライブ)から独立させるためにいろいろやってんのに、WindowsのあるCドライブからDドライブにFile Oranizerがファイルを移動してくれない。

でも、Dドライブにフォルダを作って、Cドライブのどっかからジャンクションを張っちゃえばいいんじゃない?んで、File Organizerにはジャンクションの方を指定すれば見た目は同じパーティションになるでしょ?

…そう、「一見」うまくいったように見えた。

しかし。

ジャンクションを通して実体ファイルにアクセスするとき、どうやらファイル名の扱い、特にUTF文字に難があるような気がする。具体的には、実体ファイルを同じパーティションに置くようにしたときには問題ないのに、ジャンクションを通して別パーティションに置くようにした場合にはファイル名がぶっ壊れてしまうものがある。ファイル自体は壊れていないが、ファイル名がおかしくなるのでMendeleyからはアクセスできなくなる。

そういうファイルには「õ」だとか「Á」だとかという文字が入っている。

ってことは、やっぱりWindows的に、ジャンクションを介するとファイル名の文字コードがうまく渡されない危険があるってことにならないかな?Mendeleyのファイル処理との関連もあるのかもしれんけど。

で、これまでいろいろ困ってたことって、この問題が関わってるんじゃないかな?と。なんかね、Windowsの内部的にはUTF-16LEなのに、表面的というかファイルのやりとりとかをする時にはUTF-8でやってるような気がするんだけど。その辺でうまくいかないとかって、自分の理解度じゃ追い込めないし改善・回避方法も皆目見当がつかない。

だとしたら、もう諦めるしかない。同じパーティションのどこかに実体のフォルダを作り、そこをFile Organizerの移動先を指定する以外に方法はない。

なんか釈然としないけど、仕方ないな…

0 件のコメント:

コメントを投稿