Attiva / disattiva i file nascosti senza riavviare il Finder

1

Sono piuttosto nuovo qui, e ho cercato una risposta a questa domanda, e ho trovato alcune risposte, ma nessuna sembrava funzionare per me.

Voglio essere in grado di eseguire un applescript che attiva / disattiva i file nascosti e aggiorna immediatamente tutte le finestre di ricerca aperte.

Utilizzo degli script in questi thread:

link

link

link

Ho trovato qualcosa che assomiglia a questo:

try
    set state to (do shell script "defaults read com.apple.finder AppleShowAllFiles") as boolean
on error
    set state to false
end try

do shell script "defaults write com.apple.finder AppleShowAllFiles " & (not state)

tell application "Finder"
    set theWindows to every 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

Tuttavia, a partire dalla mia versione di OS X (10.11.5), questo in realtà non commuta i file nascosti. Ho bisogno di riavviare finder per vedere i cambiamenti. So come farlo nello script con: do shell script "killall Finder" , ma non so come richiamare tutte le finestre correnti e riposizionarle dove erano.

TL; DR : C'è un modo carino per forzare l'aggiornamento delle finestre del Finder senza dover riavviare Finder? O se non c'è, come posso mantenere la mia finestra dopo un riavvio?

    
posta user2189005 23.06.2016 - 19:57
fonte

1 risposta

1

Il trucco di cambiare visualizzazione funzionava bene in Yosemite ma non più in El Capitan.

Ho dovuto tornare al semplice, ma fastidioso

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"

Piuttosto che la versione molto più carina che funzionava prima

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

Onestamente, mi piacerebbe che questa risposta fosse sbagliata

BTW, Windows dovrebbe riaprire esattamente dove erano - ma non se li hai diffusi su più di uno spazio; non è possibile.

    
risposta data 23.06.2016 - 20:28
fonte

Leggi altre domande sui tag