2024/08/20

AppleScriptでFinderのファイルとフォルダを可視・不可視に切り替える方法

シャワーから上がって寝る前にちょっとChatGPTさんと遊んで30分もかからず作ってしまったAppleScript。
以前の記事に続き?健全な青少年のために、MacのFinderで非表示にしたいファイルやフォルダを作るお役立ちスクリプトになります。
Windowsと違いMacでは可視・不可視の切り替えがメニューにあったりはしません。
その切り替えはいくつか方法があるのですが、一番簡単なのはcommand + Shift + .(ピリオド)で、3つのキーを押すたびに切り替わります。
また、これはオープンダイアログでも有効なので、不可視のファイルを開きたい時とかダイアログを出した状態からでもすぐ切り替えられます。
知ってる人がいじったらすぐに見つかってしまう不可視化ですが、とりあえず軽く隠しておきたいフォルダなどがあった時には使えるかと思います。
もちろん秘密のファイルやフォルダを隠すだけではなく、必要だけど邪魔なので隠してスッキリさせたいフォルダなどにも時々使えます。



以下ChatGPTさんの執筆


この記事では、AppleScriptを使用して、Finderで選択したファイルやフォルダを簡単に 「可視」または「不可視」に切り替える方法について説明します。このスクリプトは、 初めにファイルまたはフォルダを選択し、その後その可視性を切り替える簡単な手順を実装しています。

スクリプトの概要

このAppleScriptは、Finderで現在選択されているディレクトリを取得し、そのディレクトリを初期位置として、 ファイルまたはフォルダを選択するダイアログを表示します。ユーザーがファイルかフォルダのいずれかを選択すると、 そのアイテムの現在の可視性をチェックし、不可視の場合は可視に、可視の場合は不可視に切り替えます。

実行方法

  1. AppleScriptエディタ(またはScript Editor)を開きます。
  2. 以下のスクリプトをコピーし、エディタに貼り付けます。
  3. ファイルを保存し、スクリプトを実行します。スクリプトはファイルかフォルダを選択するダイアログを表示しますので、目的のアイテムを選択してください。
  4. 選択したアイテムが可視か不可視かに応じて、状態が切り替えられ、結果が表示されます。

AppleScriptコード

    
-- Finderで現在選択されているディレクトリを取得
tell application "Finder"
    try
        set selectedDir to (folder of the front window as alias)
    on error
        -- 何も選択されていない場合はデフォルトでデスクトップを指定
        set selectedDir to (path to desktop folder) as alias
    end try
end tell

-- ファイルまたはフォルダを選択させる
set chosenType to button returned of (display dialog "ファイルまたはフォルダを選択してください:" buttons {"キャンセル", "フォルダ", "ファイル"} default button "ファイル")

if chosenType is "ファイル" then
    set selectedItems to (choose file with prompt "ファイルを選択してください:" default location (POSIX path of selectedDir) invisibles true) as list
else if chosenType is "フォルダ" then
    set selectedItems to (choose folder with prompt "フォルダを選択してください:" default location (POSIX path of selectedDir) invisibles true) as list
end if

-- 可視・不可視の切り替えを行う
repeat with selectedItem in selectedItems
    set filePath to POSIX path of selectedItem
    
    -- ファイルまたはフォルダが不可視か確認
    set currentStatus to do shell script "ls -ldO " & quoted form of filePath
    if currentStatus contains "hidden" then
        -- 可視化する
        do shell script "chflags nohidden " & quoted form of filePath
        display dialog "ファイルまたはフォルダ " & filePath & " を可視化しました。" buttons {"OK"} default button "OK"
    else
        -- 不可視化する
        do shell script "chflags hidden " & quoted form of filePath
        display dialog "ファイルまたはフォルダ " & filePath & " を不可視化しました。" buttons {"OK"} default button "OK"
    end if
end repeat
    
  

スクリプトの仕組み

1. 現在のディレクトリの取得: 最初に、Finderで選択されているフォルダを取得します。 もし何も選択されていない場合、デフォルトのディレクトリとしてデスクトップフォルダを使用します。

2. ファイルまたはフォルダの選択: 次に、ユーザーに対して「ファイル」と「フォルダ」のどちらかを選択させ、 その選択に応じたダイアログを表示します。不可視のファイルやフォルダも選択可能です。

3. 可視・不可視の切り替え: 選択されたアイテムが現在不可視であれば、`chflags nohidden` コマンドを使って可視化し、 逆に可視であれば `chflags hidden` コマンドで不可視化します。処理の結果はダイアログで表示されます。

応用編

このスクリプトをさらに発展させて、複数のファイルやフォルダを一度に処理したり、自動化スクリプトに組み込むことも可能です。 AppleScriptの基本を理解しておくことで、さらに便利なツールを作成できるでしょう。

このスクリプトが役立つことを願っています!ぜひお試しください。