Grupowanie zaznaczonych plików do nowego folderu w Snow Leopardzie

Jak pewnie wiecie jedną z nowych funkcji Mac OS X Lion jest możliwość zgrupowania zaznaczonych plików do nowego katalogu (okraszona całkiem przyjemną animacją „wsysania”) dostępna albo z menu podręcznego po wciśnięciu prawego przycisku myszy, albo z paska menu Findera wchodząc do menu Plik, czy też wreszcie za pomocą skrótu klawiszowego `⌃⌘N`. Opcja ta bardzo przypadła mi do gustu jeszcze zanim Lion został wydany (zobaczyłem jej użycie na jednym z filmów na YouTubie przedstawiających nowości). A jako, że w pracy mam system Snow Leopard i nie zanosi się na jego szybką zmianę, chciałem zaimplementować tę opcję i w tej wersji OS’a. I z pomocą AppleScript jest to możliwe.
Aplikacją, w której stworzymy nasz skrypt będzie Automator.
- Uruchamiamy go zatem (znajduje się on w katalogu /Applications) i z pola Wybierz szablon kolejki czynności wskazujemy na Usługę.
- W polu wyszukiwania wpisujemy AppleScript i dwukrotnie klikamy na Uruchom AppleScript.
- Ponad edytorem AppleScript linijka ustawień powinna wyglądać następująco: Usługa otrzymuje zaznaczone pliki lub katalogi w Finder
- W edytorze AppleScript zastępujemy domyślny kod poniższym:
trytell application "Finder" to set the this_folder to (folder of the front window) as aliason errorset the this_folder to path to desktop folder as aliasend trytell application "Finder"set selected_items to selectionset thefoldername to text returned of (display dialog "Podaj nazwę katalogu:" default answer "katalog bez nazwy")set theFolder to (make new folder at this_folder with properties {name:thefoldername})repeat with x in selected_itemsmove x to theFolderend repeatend tell - Zapisujemy usługę (np. jako Grupuj zaznaczone do nowego folderu)
- Możemy już korzystać z utworzonej usługi. W tym celu w Finderze zaznaczamy kilka plików lub/i folderów, po czym klikamy na jeden z nich prawym przyciskiem myszy i wybieramy naszą usługę (jeśli mieliśmy wcześniej ustawione inne usługi, to naszą możemy znaleźć wtedy w podmenu Usługi).
Dodatkowo można jeszcze dla ułatwienia przypisać akcję grupowania do skrótu klawiszowego:
- Uruchamiamy Preferencje systemowe (czy to z katalogu /Applications, czy klikając na jabłko na pasku menu) i przechodzimy do ustawień Klawiatury.
- Wybieramy zakładkę Skróty klawiszowe i z listy po lewej wybieramy Usługi.
- Na liście z prawej strony odszukujemy naszą usługę (powinna się znaleźć w podsekcji Pliki i katalogi), klikamy na prawo od niej, by wejść w tryb przypisania skrótu.
- Podajemy kombinację klawiszy (np. jeśli chcecie mieć tę samą jak w Lionie, to wciśnijcie `⌃⌘N`).

Wyjaśnienie użytego kodu
Dla zainteresowanych chciałbym jeszcze dodatkowo w prosty sposób objaśnić, jak działa powyższy skrypt. Jeśli zauważycie jakieś błędy w moim tłumaczeniu, to bardzo poproszę o poprawienie.
tell application "Finder" to set the this_folder to (folder of the front window) as aliason errorset the this_folder to path to desktop folder as alias
Powyższa operacja pobiera lokalizację danego folderu z okna Findera i przypisuje ją do zmiennej this_folder. Jeśli np. zaznaczyliśmy pliki do zgrupowania w folderze Documents, to zostanie pobrana i zapisana w pamięci ścieżka do tego folderu. W przeciwnym wypadku, jeśli nie mamy otwartego okna Findera, czyli chcemy wykonać operację na Biurku, to do zmiennej zostaje przypisana ścieżka do Biurka.
set selected_items to selection
Wszystkie zaznaczone elementy przypisane są pod zmienną selected_items.
set thefoldername to text returned of (display dialog "Folder name:" default answer "new folder")
Za pomocą tej linijki tworzymy okno dialogowe z zapytaniem o nazwę folderu, która zostanie przypisana do zmiennej thefoldername. Nazwa okna to Folder name: natomiast domyślna nazwa folderu to new folder.
set theFolder to (make new folder at this_folder with properties {name:thefoldername})
Utworzony zostanie folder o nazwie zapisanej w zmiennej thefoldername.
repeat with x in selected_itemsmove x to theFolderend repeat
I na koniec pętla, która przenosi po kolei zaznaczone pliki (przechowywane w zmiennej selected_items) do nowego folderu.





Komentarze: 2
A ja nawet nie wiedziałem że jest taka funkcja. Dziękuję, fajowa funkcja :)
Brakuje tylko animacji wsysania, ciekawe czy też można dodać :)