【问题标题】:Can't set the_folder to a user folder (access denied)无法将 the_folder 设置为用户文件夹(拒绝访问)
【发布时间】:2018-06-26 04:49:28
【问题描述】:

我已经搜索了几个小时,每次都尝试推荐的修复方法。我仍然无法到达任何地方。我觉得我错过了一些如此明显的东西,我的 Mac 正在嘲笑我糟糕的尝试。

这是脚本:

tell application "System Events"
set the_folder to path to folder "dropbox" from user domain as string
set the_file to "ToDo.txt" of (POSIX path of the_folder)
set the_text to (do shell script "cat " & quoted form of (POSIX path of the_file))
return the_text
end tell

结果:

无法获取(the_folder 的 POSIX 路径)的“ToDo.txt”。访问不 允许。

文件夹是什么也没关系。我已经尝试过使用 Documents/Library,但仍然总是遇到访问问题。

【问题讨论】:

    标签: applescript posix dropbox access-denied folder-permissions


    【解决方案1】:

    这是您的脚本的更正版本:

        tell application "System Events"
            set the_folder to the folder "~/Dropbox"
            set the_file to the file "ToDo.txt" in the_folder
    
            set the_text to do shell script "cat " & ¬
                quoted form of (POSIX path of the_file as text)
        end tell
    
        return the_text
    

    注意事项如下:

    1. 不要将Path To 用于没有被内置AppleScript 常量引用的文件夹,例如home folderdesktop folder。相反,我将这一行更改为对具有指定路径 "~/Dropbox"folder 对象的简单引用。
    2. 同样,您需要在说明文件名之前放置一个file 对象说明符,否则您所做的只是给系统事件一段文本并说文本在某处在文件夹中(这没有多大意义)。现在我告诉系统事件它是file,文本是文件名,它知道在哪里可以找到它。
    3. 最后,出于某种原因,您需要声明POSIX path of the_file 的类型为text。我真的不知道为什么 AppleScript 看不到它已经是文本,但有时就是这样。

    现在我将向您展示另一个脚本,它会完全按照您的方式执行:

        set the_text to read (POSIX path of ¬
            (path to home folder) & ¬
            "Dropbox/ToDo.txt" as POSIX file as alias)
    

    【讨论】:

    • 非常感谢!运行脚本返回:错误“文件结束错误”。数字 -39
    • 并把它放在一个告诉应用程序“系统事件”中,它返回一个无法输入类型的错误
    • 那是你的文本文件有问题。不要将read 命令放入tell 块中。暂时保留该脚本并使用您的更正版本。
    • 非常感谢!当然,在 Apple Scripting 方面有很多东西要学……就像您基本上是在与计算机进行对话一样很棒,但我仍然发现其他语言更容易让我理解
    • 许多非常称职的程序员发现 AppleScript 很困难。它的自然语言语法在一个方面是一种优势,但在其他方面却是一种失败。实际上,对于程序员来说,这感觉非常不自然,尽管它对新手很有吸引力,直到 AppleScript 的反复无常让每个人都哭了。
    猜你喜欢
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2011-05-11
    • 2011-05-24
    • 2011-02-09
    相关资源
    最近更新 更多