0 votes

Comment vérifier si les éléments invisibles sont visibles ?

Comment vérifier dans AppleScript, si les objets invisibles sont visibles ? S'ils sont visibles, faites-le : defaults write com.apple.finder AppleShowAllFiles 0 dans l'invisible, do : defaults write com.apple.finder AppleShowAllFiles 1 .

Cela devrait être un script, de sorte que je puisse changer le visible en un seul clic. Est-ce possible avec AppleScript ?

1voto

Tetsujin Points 95239

Une alternative au script de grgarside, qui ne nécessite pas de redémarrer le Finder, mais simplement de rafraîchir la fenêtre ouverte.

Il peut être enregistré comme une application ou dans Automator, comme un service.
Je l'ai en tant que Service, déclenché sur Cmd H à partir de System Prefs > Keyboard > Shortcuts > Services - ce qui m'a obligé à changer la commande de touche 'Hide Finder' dans Shortcuts > App Shortcuts pour autre chose que la valeur par défaut.

Pour ajouter un service, lancez Automator puis le menu Fichier > Nouveau.
Sélectionnez Service dans la boîte de dialogue puis faites glisser Exécuter Applescript dans la nouvelle fenêtre Automator.
Copier/coller le script à l'intérieur de l'élément on run - en remplaçant (* Votre script va ici *) & Enregistrer. Il n'a besoin que des paramètres par défaut pour tout le reste.

enter image description here

Dans System Prefs > Keyboard > Shortcuts > Services, il sera ajouté comme dernière ligne. Définissez la commande de touche de déclenchement que vous souhaitez.

enter image description here

Si vous utilisez Cmd H comme moi, vous devrez changer Hide Finder pour quelque chose d'autre - j'ai juste utilisé un raccourci inutile car je n'ai jamais besoin de cette commande

enter image description here

set newHiddenVisiblesState to "YES"
try
    set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    if oldHiddenVisiblesState is in {"1", "YES"} then
        set newHiddenVisiblesState to "NO"
    end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState

tell application "Finder"
    set theWindows to every Finder window
    repeat with i from 1 to number of items in theWindows
        set this_item to item i of theWindows
        set theView to current view of this_item
        if theView is list view then
            set current view of this_item to icon view
        else
            set current view of this_item to list view

        end if
        set current view of this_item to theView
    end repeat
end tell

Le script lui-même lit l'état actuel du drapeau invisible (de manière moins élégante que la version de grgarside mais tout aussi efficace ;) puis bascule chaque fenêtre ouverte vers un autre type de vue - liste, icône etc. puis retour.

Edit : Le simple rafraîchissement de Windows ne fonctionne plus dans El Capitan, vous devez maintenant redémarrer le Finder.
Nouvelle version pour El Capitan

set newHiddenVisiblesState to "YES"
try
    set oldHiddenVisiblesState to do shell script "defaults read com.apple.finder AppleShowAllFiles"
    if oldHiddenVisiblesState is in {"1", "YES"} then
        set newHiddenVisiblesState to "NO"
    end if
end try
do shell script "defaults write com.apple.finder AppleShowAllFiles " & newHiddenVisiblesState & "; killall Finder"

0voto

grg Points 181593

Ceci définit la valeur de b à true ou false selon la valeur actuelle de AppleShowAllFiles :

[[ $(defaults read com.apple.finder AppleShowAllFiles) = 1 ]] && b=false || b=true

Par conséquent, vous pouvez créer un script tel que celui-ci :

do shell script "[[ $(defaults read com.apple.finder AppleShowAllFiles) = 1 ]] && b=false || b=true
defaults write com.apple.finder AppleShowAllFiles -bool $b"
tell application "Finder"
    quit
    delay 0.2 -- without this delay there was a "connection is invalid" error
    reopen -- open a new default window
    activate -- make Finder frontmost
end tell

Tous les crédits à Lauri dans cette réponse sur Stack Overflow

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X