2017-12-15 7 views
0

Applescript verwendet, konnte ich die Ordner auf meinem Desktop als Auswahl mit diesem Code erfolgreich zur Liste:Eintrag Ordner in/Users

set the_folder to (path to desktop) 
tell application "Finder" 
set foldernames to name of every folder of entire contents of the_folder 
end tell 
set theChosenOne to choose from list folder names 

Allerdings, wenn ich das gleiche für den/Benutzer zu tun versuchen, Ordner:

set Users to "/Users" 
set the_folder to Users 
tell application "Finder" 
set foldernames to name of every folder of entire contents of the_folder 
end tell 
set theChosenOne to choose from list foldernames 

Es diesen Fehler zurück: Fehler/Users "können nicht gesamten Inhalt \ bekommen" \ "" Nummer -1728 von «class ects» von «/ Users»

Gesucht nach diesem Fehler, aber nicht viel Information finden. Danke für jede Hilfe, die du mir geben kannst.

+0

Sie können etwas Glück mit 'do shell script' mit' find/Users -maxdepth 1 -type d 'haben. Versuchen Sie es vielleicht zuerst im Terminal. –

Antwort

1

Der Fehler tritt auf, weil der Finder slash-separierte POSIX-Pfade nicht unterstützt.

Aber es gibt eine einfachere Lösung. path to users folder geben Sie einen alias Verweis auf den Ordner /Users zurück, der direkt verwendet werden kann.

set the_folder to path to users folder 
tell application "Finder" 
    set foldernames to name of every folder of entire contents of the_folder 
end tell 
set theChosenOne to choose from list foldernames 

Caveat: Seien Sie sich bewusst, dass entire contents sehr langsam ist. Nach 2 Minuten erhalten Sie eine Apple Event Timeout Fehler. Sie könnten den Finder Tell-Block in einen with timeout Block schreiben. Allerdings würde ich find oder mdfind der Shell empfehlen, die unglaublich viel schneller sind. Und höchstwahrscheinlich erhalten Sie auch eine Zugriffsberechtigungsverletzung Fehler.

+0

Das hat es geschafft, danke! Fehler zuerst, aber die Klammer in der ersten Zeile hinzugefügt und es hat funktioniert. Du hast recht mit "ganzen Inhalten" und in diesem Fall brauchte man sie nicht so entfernt und ja, es lief viel schneller. Danke noch einmal! – xian