AppleScript写入日志文件但事件报告权限问题

时间:2015-03-23 21:24:19

标签: applescript privileges

我正在写入〜/ Library / Logs / DocumentLogs /目录中的日志文件

我这样做:

        --open and write logfile entries
        set writetoTheThing to open for access theFile with write permission
        write (logEntry & return) to writetoTheThing starting at eof

        close access (writetoTheThing)

及其工作。日志文件写入....

正在打开文件"具有写入权限"并获取信息显示我是所有者等。

但是,事件日志显示:

活动: 打开访问别名" Macintosh HD:用户:lenny:Library:Logs:DocumentLogs:DocLog_2015_03.log"具有写入权限

事件结果显示:发生了权限违规(errAEPriviledgeError -10004)

我该如何解决这个问题?

TIA

2 个答案:

答案 0 :(得分:0)

您是否具有该目录及其父目录的写权限?

我将使用错误编号包装一个try-on错误结束try块并使用错误编号,然后检查错误编号(如果有),并使用display alert e & " : " & n显示它。

如果你正在创建文件,那么我也会从0开始使用,但我现在看不出有任何区别(但我有一个模糊的记忆,从eof开始,从1开始)。

如果你重新启动脚本编辑器,由于泄漏的文件句柄,如果你在设计处理程序时遇到一些运行时错误,也许会有所帮助。

答案 1 :(得分:0)

感谢所有这些好建议。但是,我确实从同事那里得到了一个我认为值得注意的答案。我确实获得了许可,而且eof不是问题。解决方案是将“打开”和“关闭”功能包装在“告诉我”中。这是针对当前流程中的脚本添加目标,并避免让Finder报告权限违规。

这有效:

告诉我    将writetoTheThing设置为打开以使用写入权限访问文件    将(logEntry& return)写入以eof开头的writetoTheThing

关闭访问writetoTheThing  结束告诉

Mark Scriptger帮我解决了问题。他的计划是纯金......他也是支持者。 谢谢大家!