今回は、SDカードの中にある任意形式のデータをPCにバックアップするプログラムを作ってみます。というのも、先日、実家に戻ったときに、母から面白い依頼を受けたからです。こんな感じのやり取りです。
私「へぇ、そうなんだ」
母「それで、その時撮影した写真を欲しい人がいるのよ」
私「メールで送ってあげればいいよね」
母「うん、でも、そのやり方が分からないのよ」
私「どれどれ、やってあげるよ。どの写真?」
(スマホではない)携帯電話をポチポチ操作しながら。
母「これと、これと、これと、これと、これと……」
私「たくさんあるね。でも、お母さん、定額インターネットのサービス入ってないんだよね」
母「携帯でインターネット見ないからね」
私「それなら、SDカードに写真を移して、PCで操作するのがいいね」
時代はスマートフォン全盛ではありますが、コスト面や分かり易さを優先して、スマートフォンを使わない方もまだまだ多いでしょう。そうなると、携帯電話で撮影した写真をどのように取り出すかは、端末ごとに異なります。
ここ数年以内の携帯電話ならば、microSDカードを挿入できるようになっていますので、これを利用するのが近道です。もともと写真を撮影するとmicroSDカード内に写真を保存するようになっているか、あるいは、端末の操作で撮影した写真をmicroSDに移動できるようになっているものが多いでしょう。SDカード(microSD)内にデータを移すことができれば、あとはPCで写真を取り出すだけです。
Android/iPhoneならばUSBでPCと接続するだけで、端末をUSBドライブとして認識するようになるので、手軽に端末内の写真などを取り出すことができます。本連載でも「JavaScriptでAndroid内の写真をバックアップしよう(第12回)」でその方法を紹介しました。
さて、母の携帯電話の端末では、写真が自動的にmicroSDに保存される仕組みになっていたので、SDカードにデータを移す必要はありませんでした。ところが、PCにSDカードを挿して中を覗いてみると、携帯電話で利用されるたくさんのフォルダーが作成されていて、肝心の写真がどこに入っているのか見つけることができません。
検索すると、かなり深い階層にある複数フォルダーにJPEG画像が保存されていることが分かりました。検索で一致したファイルを少しずつコピーしても良いのですが、せっかくなので、汎用的なSDカードからのファイル抽出プログラムを作ることにしました。