Dropboxのカメラアップロードの写真を日付ごとに整理するプログラム
Dropboxのカメラアップロードフォルダの写真を日付ごとに整理するプログラムを書いた。
iPhoneのDropboxアプリには、カメラアップロードという機能がある。
これはiPhoneで撮った写真を、自動的にDropbox内の「カメラアップロード」という フォルダにアップロードしてくれる機能だ。
iOSデバイスではフォトストリームという機能があって、 WindowsPCとも写真を共有できるのだが、最近うまく動いてくれないので、 Dropboxのカメラアップロード機能を利用している。
カメラアップロードで、アップロードされる写真は 以下のようなフォーマットで自動的にリネームされる。
2015-01-17 11.34.02.jpg
写真がカメラアップロードフォルダに ガンガン突っ込まれていくので、整理する必要がある。
そこで、安直に日付ごとにフォルダを作ることにした。 ただ、手動ではやりたくないのでC#でプログラムを書いてみた。
static void Main(string[] args) { // カレントディレクトリが対象 var currentDir = Directory.GetCurrentDirectory(); foreach (var filePath in Directory.GetFiles(currentDir)) { // 自分自身はスキップ if (filePath == System.Reflection.Assembly.GetExecutingAssembly().Location) continue; var fileName = Path.GetFileName(filePath); var date = fileName.Substring(0, 10); var dateDir = Path.Combine(currentDir, date); // 日付のディレクトリが存在しない場合は作成する if (!Directory.Exists(dateDir)) Directory.CreateDirectory(dateDir); File.Move(filePath, Path.Combine(dateDir, fileName)); } }
GitHubにあげておいた。exeもダウンロードできる。
Release 0.1 · posnum/PhotoOrganizerByDate · GitHub
本当に単純なプログラムで、 実行したフォルダにあるファイルを、日付フォルダをつくってそこに振り分ける。 確認メッセージなども出ずいきなり実行するので注意。
想定する用途としては、Dropboxのカメラアップロードフォルダにexeを置いて 定期的に実行する。
Before
After
この程度だったらバッチファイルでも書けそうだったが、 バッチの書き方をいろいろと調べるのが面倒なので、 C#でさくっと書いた。