2015-10-27 3 views
1

У меня возникли проблемы с доступом к этому файлу при попытке выбрать его на первых символы основе ...Выбор POSIX файл на основе имени файла

set location to "/Users/myuser/Desktop/" 
set bom to POSIX file (location & (first file of location whose name begins with "thisFile")) 
tell application "Preview" to open bom 

это путь/псевдоним против текста типа вещи?

ответ

1

Только System Events и Finder знаете, что такое файл в файловой системе.
Finder имеет свойство desktop, которое всегда указывает на рабочий стол текущего пользователя.

tell application "Finder" to set bom to first file of desktop whose name begins with "thisFile" 
tell application "Preview" to open (bom as alias) 

Или с произвольным путем POSIX

set location to POSIX file "/Users/myuser/Desktop" as text 
tell application "Finder" to set bom to first file of folder location whose name begins with "thisFile" 
tell application "Preview" to open (bom as alias) 

alias принуждение необходимо, потому что Preview не распознает Finder объектов спецификаторов файлов.

+0

Я действительно делаю нужно место var там, поскольку Desktop - это только мое временное место тестирования ... – user3101259

+0

Я обновил ответ. – vadian

1

vadian's answer работает хорошо, но стоит отметить, что:

  • вы можете получить доступ к хорошо известным папкам даже в по умолчанию контексте, вне контекст System Events и Finder; например .:

    • path to desktop
    • path to home folder
    • использования, например, POSIX path of (path to home folder) получить путь POSIX.
  • используя контекст System Events, как правило, предпочтительнее Finder контексте, по соображениям производительности и предсказуемости.

С произвольной целевой папке, используя путь POSIX:

tell application "System Events" 
    set targetFolder to alias "/Users/jdoe/Desktop" 
    # equivalent of: set targetFolder to (path to desktop) 
    set targetFile to first file of targetFolder whose name starts with "thisFile" 
end tell 

tell application "Preview" to open targetFile 

В качестве альтернативы, если вы знаете свой путь вокруг оболочки, вы можете попробовать:

set targetFilePosixPath to do shell script "fls=(~/Desktop/*.pdf); printf %s \"$fls\"" 
tell application "Preview" to open (POSIX file targetFilePosixPath as alias) 
Смежные вопросы