2013-08-30 3 views
1

Я действительно смущен этим. Все, что я хочу, это открыть файлы в списке. Вот мои кодыPOSIX путь в applescript из списка не открывается. Исходные пути

set FilesList to {"Users/XXXXXX/Documents/07PictureArt-Related/THINGS THAT HELP/Tutorials/artNotesfromFeng.rtf", "Users/XXXXXXXX/Documents/07PictureArt-Related/THINGS THAT HELP"} 

repeat with theFiles in FilesList 
    delay 0.1 
    tell application "Finder" to open POSIX file (theFiles) 
end repeat 

Итак, как получилось, что это не сработает, но это будет ???

tell application "Finder" to open POSIX file "Users/XXXXXX/Documents/07PictureArt-Related/THINGS THAT HELP/Tutorials/artNotesfromFeng.rtf" 

Я думаю, что, возможно, придется делать с, возможно, список делает его строку, и когда я подключить его прямо в открытую команду, это выглядит как струна, но это не так на самом деле ... Я не знаю

На данный момент, я думаю, мне просто нужно переборщить его и сделать новое заявление для каждого файла.

Благодаря

ответ

3

Не уверен, что там происходит, я согласен, что это заблуждение.

Альтернативный вариант заключается в том, чтобы вместо этого использовать командную оболочку 'open'.

repeat with filePath in FilesList 
    do shell script "open " & quoted form of filePath 
end repeat 

Оболочка кажется более счастливым с POSIX путями, хитрость заключается в том, чтобы отправить в «цитируемой форме» ваши путях POSIX.

- РЕДАКТИРОВАТЬ: Вкладывание в var сначала работает тоже.

repeat with theFiles in FilesList 
    set f to POSIX file theFiles 
    tell application "Finder" to open f 
end repeat 

Похоже, что Finder вызывает принуждение к проблеме с файлом POSIX.

0

Любой из этих работ:

set l to {"/bin", "/etc"} 
repeat with f in l 
    tell application "Finder" to open (POSIX file (contents of f) as alias) 
end repeat 
set l to {"/bin", "/etc"} 
repeat with f in l 
    POSIX file f 
    tell application "Finder" to open result 
end repeat 

Попробуйте запустить этот скрипт:

set l to {"/bin", "/etc"} 
repeat with f in l 
    f 
end repeat 

В результате в конце концов item 2 of {"/bin", "/etc"}. contents of возвращает цель ссылочного объекта.

Не знаю, почему POSIX file f не работает внутри блока tell application "Finder", или почему POSIX file f as alias действительно работает.

Смежные вопросы