やりたいこと
画像や動画ファイルなどをiPhoneからMacBookにAirDropで転送する際、デフォルトの保存先は Downloads/ フォルダとなっている。これを変更したい。
具体例としては、iPhoneの空き容量確保のために大量のスクショ画像や録画・動画をMacに移動するケース。サイズが大きいなどの理由により、Mac側でTimeMachineのバックアップ対象から除外したい。そこで、TimeMachineで除外設定したフォルダへすぐさま退避しておきたい。
アイデア
残念ながら保存先の変更自体はどうしてもできないらしく、一度は必ず Downloads/ に保存される。そこで代替策として、転送完了後すぐさま別のフォルダに移動する。
そのためにMacの標準的な仕組みであるAutomatorとフォルダアクションを使う。
この基本的なアイデアだけで予備知識なしでGUI操作して作ると、ハマって30分ほど試行錯誤したのでTIPSとして残しておく。
注意点:期待しない動作・ハマったこと
フォルダアクションはファイル書き出しが瞬時に終わることを前提としているのか、Downloads/ へファイル保存が完了する前に移動し始めるようで、移動先フォルダに中途半端な空ファイルだけ作られ、実体はDownloads/ にできる。移動先フォルダの空ファイルを削除しようとすると、プログラム(フォルダアクション?)がつかんだままになる。
この問題を解決するのが、後述する手順に「★重要」と書いている部分。
確認した動作環境
- macOS Catalina バージョン 10.15.7
- iPhone 7 iOS 15.7
1. 準備:ワークフローを作成する
- Automator起動し新規ワークフローを作成
- ワークフローの種別としてフォルダアクションを選択
- 「フォルダアクションは、次の場所に追加されたファイルやフォルダを受け取る」の箇所で、Downloadsを選択
- そのフローの下に「Finderにフィルタを適用」を追加
- 種類がイメージである、あるいはムービーであるものを対象とする
- オプションで「ワークフローの実行時にこのアクションを表示」にチェック ←★重要
- そのフローの下に「Finder項目を移動」を追加
- 保存先フォルダを任意に選択
- ワークフローを保存
これで自動的にフォルダアクションが設定され、AirDropやその他の方法でDownloadsにファイルが追加された際に、自動的に起動されて動作する。
2. 保存と移動
- AirDropなどでDownloads/にファイルを送信する
- (先に作成したフォルダアクションが自動実行される)
- 「Finder項目にフィルタを適用」ダイアログが表示されるが、まずは何もしない。送信側で送信が完了、すなわち受信側でDownloadsフォルダへのファイル保存が完了するまで待つ(※1)。ちなみにこのダイアログは上記手順のフィルターのオプションで設定したもの。ファイル数が50以上など多い場合は2回表示される場合がある。
- 送信/が完了しファイルが一式作成されたら、表示ダイアログの「続ける」ボタンを押す(※2)。
これで、移動先フォルダにファイルが移動される
※1)ファイル名が半透明の状態は書き出し途中を意味する。
※2)これが早すぎると、冒頭に書いた期待しない状況が発生する。
補足
フォルダアクションを作成する前から既にDownloads/内に画像や動画ファイルがある場合、それらは移動対象とならない。フィルターがファイルをつかみ、それらのみ移動する模様。
ダイアログが複数回に分けて表示される場合、それぞれが分担してつかんでいるらしく、「続ける」ボタンを押すと、その担当分だけ移動される。
フォルダアクションを無効化する方法
- ダウンロードフォルダを右クリックし、「フォルダアクション設定」
- Downloadsを選択し、当該フォルダアクションを削除
おわりに
Automatorが識別するファイル種別で切り替えられるので、必要に応じて切り替えると応用が効く。うっとうしい時は無効化するとOK