2012-06-29 43 views
12

Tôi đang cố mở một thư mục trong Trình tìm kiếm bằng AppleScript. Sau đây là mã của tôi. Tôi muốn thư mục WorkSpace mở trong Trình tìm kiếm nhưng nó mở Thư mục chính /Volumes/MyMacDrive/Mani và làm nổi bật thư mục WorkSpace. Tôi muốn nội dung của thư mục WorkSpace, nhưng tất cả những gì tôi nhận được là Nội dung của Thư mục gốc. Tôi đang thiếu gì ở đây ..?Applescript: Mở một thư mục trong Finder

property the_path : "/Volumes/MyMacDrive/Mani/WorkSpace/" 
set the_folder to (POSIX file the_path) as alias 
tell application "Finder" 
    activate 
    if window 1 exists then 
     set target of window 1 to the_folder 
    else 
     reveal the_folder 
    end if 
end tell 
+2

Sử dụng 'Finder window' lớp thay vì 'cửa sổ' để không có lỗi nếu một trong các cửa sổ này đang mở (cửa sổ thông tin, cửa sổ tùy chọn, cửa sổ cắt và cửa sổ tùy chọn xem) .-->' nếu cửa sổ Finder 1 tồn tại sau đó'. Lệnh tiết lộ: Đưa (các) đối tượng được chỉ định vào ** xem **, sử dụng lệnh 'mở' như trong câu trả lời của ** adayzdone **. – jackjr300

Trả lời

18

Theo như tôi đã tìm kiếm, có vẻ như không có cách nào để mở thư mục thay vì chỉ làm nổi bật thư mục trong AppleScript. Vì vậy, tôi đã sử dụng:

do shell script "open /Volumes/MyMacDrive/Mani/WorkSpace/" 

Nó làm việc tốt cho tôi nhưng xin vui lòng cập nhật cho tôi nếu tôi sai.

+0

Không có sự khác biệt giữa lệnh 'do shell script' và lệnh' open' (not ** reveal **) trong Finder, nó hoạt động với mọi người. Nhưng, có thể đó là ngoại lệ đối với quy tắc. – jackjr300

+2

Để hoàn thành, tôi muốn thêm rằng nếu đường dẫn của bạn là một tham số, bạn có thể sử dụng 'do shell script" open "& quote & pathParameter & quote' và nó xử lý những thứ như dấu cách trong đường dẫn. –

3

Hãy thử:

if front Finder window exists then 
    set target of front Finder window to the_folder 
else 
    open the_folder 
end if 

Edited để kết hợp chỉnh jackjr300 của. Cửa sổ tìm kiếm là lớp chính xác để sử dụng.

+0

Trong khi điều này là chính xác tôi đã chỉnh sửa nó bởi vì nó sẽ không hoạt động mà không có 'kết thúc if' và bạn sẽ nhận được một lỗi rằng' the_folder' không được xác định. –

11

Nó thực sự đơn giản hơn có vẻ như:

tell application "Finder" to open ("/Volumes/MyMacDrive/Mani/WorkSpace/" as POSIX file) 

hoặc sử dụng dấu hai chấm để đưa ra một con đường AppleScript:

tell application "Finder" to open "MyMacDrive:Mani:WorkSpace" 

với điều đó bạn có một cửa sổ đang mở

+1

Điều này không làm việc cho tôi – Besi

+0

Vâng, tôi đã sử dụng thứ hai và nó đã làm việc cho tôi (Mac OS X 10.10.3, AppleScript 2.4). Cảm ơn bạn! – RoberRM

Các vấn đề liên quan