1 min read

Androidの復元ファイル日時問題

新しい端末を買ったらとりあえず前の端末からのデータ移行だと思う。

様々なコピー方法があると思うが、バックアップから手動でコピーしてくると更新日時が変更されてしまい、今までの順番では表示されなくなるだろう。
これを解決してみる。

Downloadフォルダの復元をしてみる

PC上で

COPYFILE_DISABLE=1 tar -zcvf download.tar Download/

COPYFILE_DISABLE=1を与えてやることでMacの._から始まるファイルを除外して圧縮してくれる。

次にこれを端末に転送する。

adb push download.tar /sdcard/

端末上で

先ほど転送したdownload.tarを解凍する。

adb shell
$ cd /sdcard/
$ tar xzvf download.tar

これで更新日時が変更されていないファイルの作成ができる。

ただし

tarにはファイル名の長さが100文字までという制限があるため、それを超える場合はこの手法が使えない。
よって、zipを使うなど更新日時の更新が必要になってしまう。

余談

なぜこのようなことをしようかと思ったか。

私はAndroid端末のファイルのバックアップにFolderSync Proというアプリを使っている。
こいつは新しいファイルなどをボタン1つで簡単にサーバーへアップロードしてくれるのだが、新しい端末の時など更新日時が変更されたものをお構いなしに転送する。

なので実際数GB以上の更新処理が入ってしまう。
ファイル自体は変更されていないのだが、ただの更新日時のアップデート処理を数千数万とやっていくのはなんかちょっとという感じなので解決させた。