AppleScript:尝试写入TextEdit文件

时间:2013-03-04 10:18:45

标签: applescript textedit

我正在尝试写入已创建的TextEdit文件。 该文件处于rwxrwxrwx模式,因此没有权限问题。

但是当我执行我的代码时,这是错误:

error "Network file permission error." number -5000 from file "/Users/me/Desktop/A directory/file.txt" to «class fsrf»

我的代码在这里:

-- Writing in the TextEdit file
set file_URLs_content to "HEEEELLOOOOOO"
tell application "TextEdit"
    set theFile to "/Users/me/Desktop/A directory/file.txt"
    set file_ref to (open for access file theFile with write permission)
    set eof file_ref to 0
    write file_URLs_content to file_ref
    close access file_ref
end tell

我的file.txt仍为空,如何避免此错误?

3 个答案:

答案 0 :(得分:2)

你不需要TextEdit。试试这个:

set the logFile to ((path to desktop) as text) & "log.txt"
set the logText to "This is a text that should be written into the file"
try
    open for access file the logFile with write permission
    write (logText & return) to file the logFile starting at eof
    close access file the logFile
on error
    try
        close access file the logFile
    end try
end try

答案 1 :(得分:2)

使用TextEdit编写文本时,可以避免错误的方法是记住它是文本编辑器。它已经知道如何创建和保存文本文档而不会产生错误。您不必使用(容易出错)打开访问。您不必使用(容易出错的)shell脚本。您所要做的就是让TextEdit为您创建一个包含您喜欢的任何内容的文本文档,并将其保存在您喜欢的任何地方。 TextEdit知道如何在不产生文件访问错误(如打开访问)或意外覆盖文件夹(如shell脚本)的情况下执行此操作。

tell application "TextEdit"
    activate
    set theDesktopPath to the path to the desktop folder as text
    set file_URLs_content to "HEEEELLOOOOOO"
    make new document with properties {text:file_URLs_content}
    save document 1 in file (theDesktopPath & "file.txt")
    close document 1
end tell

这种方法的优点是编写速度更快,更容易,不易出错,输出的文本文件与使用TextEdit手动创建的文本文件具有相同的属性,并且脚本可以现在可以轻松扩展到包含其他应用程序。例如,文本内容可以来自另一个应用程序或剪贴板,文本文件可以在另一个应用程序中打开,也可以在保存后通过电子邮件发送。

AppleScript最基本的功能是以这种方式向Mac应用程序发送消息。如果要将PNG转换为JPEG,则不要在AppleScript中编写PNG解码器和JPEG编码器,并打开PNG文件进行访问,逐字节读取,然后逐字节编码JPEG。您只需告诉Photoshop打开PNG图像并将其作为JPEG导出到特定文件位置。 “open for access”命令是读取和写入文件的最后手段,您只是没有应用程序可以读取或写入。 “do shell script”命令用于在您没有Mac应用程序来完成工作时合并命令行应用程序,例如,您可以使用Perl进行正则表达式。如果您正在处理文本文件,您不仅可以使用TextEdit,还可以从Mac App Store获取免费的TextWrangler,它还有一个巨大的AppleScript字典,用于读取,编写和编辑文本文件。

答案 2 :(得分:1)

尝试:

set file_URLs_content to "HEEEELLOOOOOO"
set filePath to POSIX path of (path to desktop as text) & "file.txt"
do shell script "echo " & quoted form of file_URLs_content & " > " & quoted form of filePath