2017-02-28 23 views
0

我正在尝试创建一个包含预定文本的applescript的plist文件。我需要能够将此文本写入文件“plistfile.plist”,但每当我运行脚本时都会收到错误“Can't get file (alias "MacintoshHD:Users:myusername:Desktop:plistfile.plist")”。我的脚本是:脚本错误:无法在Applescript中获取文件?

set plistfilename to POSIX file "/Users/myusername/Desktop/plistfile.plist" as alias 

set ptext to "plist text" 

set plist to open for access file plistfilename & "plistfile.plist" with write permission 
write ptext to plist 
close access file plist 

我不是很熟悉这一点,但我认为这是有道理的。我做了一些谷歌搜索,并没有在其他地方发现这个问题。如果有人能让我知道我错过了什么,我会非常感激。

回答

1

代码失败,因为如果文件不存在,强制as alias会引发错误。

这是写文本文件通常的和可靠的方式

set plistfilename to (path to desktop as text) & "plistfile.plist" 

set ptext to "plist text" 

try 
    set fileDescriptor to open for access file plistfilename with write permission 
    write ptext to fileDescriptor as «class utf8» 
    close access fileDescriptor 
on error 
    try 
     close access file plistfilename 
    end try 
end try 

编辑:

认为脚本的结果是一个简单的.txt文件,即使你通过.plist延期。

要创建您可以使用真正属性列表文件System Events

tell application "System Events" 
    set rootDictionary to make new property list item with properties {kind:record} 
    -- create new property list file using the empty dictionary list item as contents 
    set the plistfilename to "~/Desktop/plistfile.plist" 
    set plistFile to ¬ 
     make new property list file with properties {contents:rootDictionary, name:plistfilename} 
    make new property list item at end of property list items of contents of plistFile ¬ 
     with properties {kind:boolean, name:"booleanKey", value:true} 
    make new property list item at end of property list items of contents of plistFile ¬ 
     with properties {kind:string, name:"stringKey", value:"plist text"} 
end tell 

的脚本创建此属性列表文件:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>booleanKey</key> 
    <true/> 
    <key>stringKey</key> 
    <string>plist text</string> 
</dict> 
</plist> 
相关问题