Finder更新/刷新applescript在10.8中不起作用

时间:2012-08-02 15:58:45

标签: objective-c applescript osx-mountain-lion finder appleevents

我一直在使用apple脚本来更新finder中文件和文件夹的显示。这是该脚本的简化版本:

tell application "Finder"
    tell window 1 to update items
end tell

我可以看到,因为10.8(Mountain Lion)更新命令没有正确执行或根本没有执行。直到10.8一切都运行良好 - 更新命令后立即重新绘制所有图标。 我用它来显示叠加图标。

你们有没有遇到同样的问题? 我责备finder改变了苹果脚本api,因为,如果我触摸-a -m文件,它会更新。所以肯定有一些方法可以更新它。

2 个答案:

答案 0 :(得分:2)

您可以在finder中创建可见文件以刷新查找器窗口。

tell application "Finder"
    set currentPath to (POSIX path of (target of front window as alias))
    set filePath to currentPath & "UUID" --create UUID
    do shell script "touch \"" & filePath & "\""
    delay 0.5
    do shell script "rm \"" & filePath & "\""
end tell

答案 1 :(得分:1)

我和你有同样的问题。一旦我使用10.8 SDK构建它,我即将发布我的应用程序,但Mountain Lion刚刚破坏了我的“刷新Finder Windows”和“显示/隐藏隐藏文件”菜单选项。我试过一切都无济于事。唯一似乎有帮助的是,如果你再次写入Finder首选项之前等待60-90秒。

在终点站:

默认写com.apple.Finder AppleShowAllFiles TRUE&& killall Finder

等一分半钟到一分半钟,然后按照这样反转命令:

默认写com.apple.Finder AppleShowAllFiles FALSE&& killall Finder

(我不知道如何通过终端刷新Finder,但也许这种延迟会以某种方式帮助你。)

这是我目前知道的唯一方法,让Finder窗口可以执行我想要的任何操作。很沮丧;我希望有人可以很快解决这个问题,或者我的一个主要卖点消失了。

-Chris