3

我正在尝试写入已经创建的 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 还是空的,如何避免这个错误?

4

3 回答 3

4

使用 TextEdit 编写文本时避免错误的方法是记住它是一个文本编辑器。它已经知道如何创建和保存文本文档而不会产生错误。您不必使用(容易出错的)open 进行访问。您不必使用(容易出错的)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”命令是读取和写入您根本没有应用程序可以读取或写入的文件的最后手段。当您根本没有 Mac 应用程序来完成这项工作时,“do shell script”命令用于合并命令行应用程序,例如,您可以使用 Perl 执行正则表达式。如果您所做的只是处理文本文件,那么您不仅拥有 TextEdit,

于 2014-08-19T11:07:06.423 回答
3

为此,您不需要 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
于 2013-03-04T10:55:51.233 回答
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
于 2013-03-04T11:52:42.550 回答