閉じる

Google Driveにおける同名ファイルの扱い

最近、拙作の Androidアプリはデータのバックアップ先に Google Driveを使うようになっている。
最初は特定のファイル名で上書きしていくというのを考えたのだけど、Google Driveは同名ファイルの存在を許容する仕様になっているのでこの方法はうまくないと言うことになった。
次にファイルを作成したときに得られる識別子を保存し、識別子に基づいて内容を上書きしていく方法になった。
これはこれでうまくいく。
が、同名ファイルは許容するけど、本当のファイル名とは別に見かけのファイル名というのが存在していて、newOpenFileActivityBuilder/OpenFileActivityBuilderを用いたときや Windows上で Google Driveアプリを動かしたときなどに表示されるのは見かけのファイル名だったりする。
hoge.xmlを二つ作ったときに見かけのファイル名は hoge.xmlと hoge(1).xmlだったりするわけだ。
識別子でアクセスする分には問題ないのだけど、問題は識別子から見かけのファイル名を得る方法が見あたらないという点。
どうやら、後から作った方が~(1)、~(2)という感じで命名されていくようなのだけど、識別子からは hoge.xmlという本当のファイル名しか得られず、アプリケーションからユーザーに「あなたが編集している hoge.xmlは hoge(1).xmlですよ」と言えない状況。
見かけのファイル名を編集しても本当のファイル名は影響を受けないってのも困る。
まぁ 見かけのファイル名が複数存在できそうな感じでもあるので難しい所なんだけど、何か良い方法がない物だろうか。
ちなみにメタデータを編集してタイトルをユニークな物に変更すると見かけのファイル名も変更される。
なので、Google Driveアプリ(Windows,Android,…)からのリネームはしないようにして、アプリの方にタイトルの変更機能を実装する運用で逃げるしかないかなぁ

Google Driveにおける同名ファイルの扱い」への2件のフィードバック

  1. そうなんです。
    困りますよね。

    版を管理させて、新しい版をアップロードさせると入れ替わってくれるらしいのですが、プログラムから管理する方法がよく解りません。

    1. 版の管理云々というのは Web版の Google Driveで Manage versionsから行える操作のことだと思います。
      Android APIを使う自アプリから識別子を使った更新をしていくと版が上がっていきますから。
      で、少なくとも Android APIには Manage versions関係は含まれていないようです。(年末に発表された V3はわかりませんが)

      結局、最初の投稿で示唆しているようにアプリは「識別子でアクセス&リネーム機能の実装」、同名ファイルは「更新日とファイルサイズで識別」で逃げています。

コメントを残す

メールアドレスが公開されることはありません。必須項目には印がついています *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)