这似乎是一件容易的事情,我很惊讶解决方案仍在逃避我。
我试图存储由"选择文件打开的最后一个文件夹"对话框。我想将该文件夹的位置存储在文本文件中。
我想让我的"选择文件"对话框始终打开到最后使用的文件夹。
我已经有很多脚本正在运行,但有一个奇怪的事情让我不知所措。
看看我的剧本......
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。
答案 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 ”文档的编码。