AppleScript选择文件对话框存储在文本文件中打开的最后一个文件夹。

时间:2015-07-20 04:36:15

标签: applescript

这似乎是一件容易的事情,我很惊讶解决方案仍在逃避我。

我试图存储由"选择文件打开的最后一个文件夹"对话框。我想将该文件夹的位置存储在文本文件中。

我想让我的"选择文件"对话框始终打开到最后使用的文件夹。

我已经有很多脚本正在运行,但有一个奇怪的事情让我不知所措。

看看我的剧本......

set Shows to paragraphs of (read POSIX file "/Users/lowken/Documents/config.txt")

set strPathFromConfig to item 1 of Shows as string

set strPathFromConfig to ((characters 3 thru -1 of strPathFromConfig) as string)

display dialog strPathFromConfig

set strPath to (path to home folder as text) & strPathFromConfig

display dialog strPath

choose file with prompt "Please choose a file:" of type {"XLSX", "APPL"} default location alias strPath

该脚本读取我的配置文本文件,其中包含一行和一行" Documents"。

我修剪了一些前导垃圾字符并显示一个对话框,结果为" Documents"。

然后我使用配置文件中的值设置strPath。

我显示新值,因为它是我系统上的有效位置。

接下来我尝试对话框,并收到错误消息"文件别名Macintosh HD:用户:lowken:找不到文件。

让我们更改脚本,以便不使用从config.txt文件中提取的值,而只是在我的脚本中设置一个字符串变量。

set Shows to paragraphs of (read POSIX file "/Users/lowken/Documents/config.txt")

set strPathFromConfig to item 1 of Shows as string

set strPathFromConfig to ((characters 3 thru -1 of strPathFromConfig) as string)

display dialog strPathFromConfig

set strTemp to "Documents"

set strPath to (path to home folder as text) & strTemp

display dialog strPath

choose file with prompt "Please choose a file:" of type {"XLSX", "APPL"} default location alias strPath

现在它有效。 AppleScript似乎不想使用从config.txt文件中查找的值。

我做错了什么?我尝试了一个Alias,我在我的系统上尝试了不同的位置。

在我看来,从文本文件中查找的值不是字符串数据类型。

有什么想法吗?

P.S。

我在2012年年中的MacBook Pro上运行OS X Yosemite 10.10.4。

2 个答案:

答案 0 :(得分:1)

choose file命令的默认位置可以是Unix路径" / Users / my_user / Documents"或者之前使用Alias的Finder路径:alias" HD:用户:my_User:Documents" 所以首先检查strPath是否正确,然后如果OK,请仔细检查它的类:

Display Dialog (class of strPath) as string

它可能不正常,你必须强制(作为字符串的主文件夹的路径)而不是文本。

答案 1 :(得分:1)

问题是“config.txt”文档的编码。

read命令可以读取( MacRoman UTF-8 UTF-16 )编码的文本文件,但是你必须指定类型class,否则它将文本文件读为MacRoman。

set strPathFromConfig to paragraph 1 of (read "/Users/lowken/Documents/config.txt" as «class ut16») -- or if UTF-8 use —> as «class utf8»
set strPath to ((path to home folder as text) & strPathFromConfig) as alias
choose file with prompt "Please choose a file:" of type {"XLSX", "APPL"} default location strPath

对于其他编码,您必须更改“ config.txt ”文档的编码。