/tmp/test.txt
我正在尝试使用 AppleScript将内容写入文件。
- 如果文件不存在,我想创建它。
- 如果确实存在,我想替换内容。
这被证明是相当困难的,因为 AppleScript 创建新文件与写入现有文件的语法不同。我还考虑过删除已经存在的文件,然后创建它,但 AppleScript 默认会将内容移至垃圾箱,因此即使这样也相当复杂。
我要写入文件的数据中可能有很多特殊字符,所以我真的不想做类似的事情,do shell script "cat " + data + " > /tmp/txt.txt"
因为我不知道escapeshellarg
AppleScript 有什么。
以下是我到目前为止的内容,但出现错误:
无法将文件“Macintosh HD:private:tmp:test.txt”转换为类型引用。
我真的很想通过改进write_to_file
我在这里得到的帮助函数来抽象它,这样如果文件不存在,它就会负责创建文件。
my write_to_file("hello", "/tmp/test.txt", false)
on write_to_file(this_data, target_file, append_data)
try
if not (exists POSIX file target_file) then
make new document file at ("/tmp/" as POSIX file as alias) with properties {name:"test.txt", text:the_data}
end if
set the target_file to the target_file as POSIX file
set the open_target_file to open for access file target_file with write permission
if append_data is false then set eof of the open_target_file to 0
write this_data to the open_target_file starting at eof
close access the open_target_file
return true
on error e
try
display dialog e
close access file target_file
end try
return false
end try
end write_to_file