有没有办法在Cocoa中更改用户桌面目录路径值?

时间:2011-06-25 15:59:29

标签: objective-c cocoa macos

我知道NSDesktopDirectory会让我获得当前用户桌面目录的路径,但是这个路径值写在哪里,有没有办法从我的cocoa应用程序中更改它我无法找到。

有人能指出我正确的方向吗?

其他解释:在Snow Leopard中,当我将Desktop文件夹重命名为任何内容时,此文件夹的内容仍显示在桌面上,因此我猜操作系统会跟踪该文件夹名称和位置的变化并保持它作为桌面文件夹。有谁知道它是怎么做到的?

3 个答案:

答案 0 :(得分:1)

您可以这样做的一种方法是将用户桌面上的整套文件(包括具有位置/空间信息的.DS_Store)存储到〜/ Library / Application Support /文件夹中的文件夹中,然后移动其他文件在〜/桌面上?这应该有效地“替换”用户的桌面。

[如上所述作为答案发布]

答案 1 :(得分:0)

出于好奇,我花了大约40分钟来研究这个问题。谷歌在这种特殊情况下没有任何帮助,所以我在我的〜/ Library文件夹中搜索。路径不存储在任何地方。然后我用命令行fu来挖掘,检查标志和我能找到的任何其他元数据。没什么用的。

我认为这是一个内置的东西,使用文件系统引用而不是硬编码的文件路径(这就是为什么它的“桌面”名称可以保留重命名)。如果删除它,它会创建一个新的并将ref存储到该那个。你将无法交换它。

我认为菲尔的评论可能是你最好的选择:移动文件夹的内容而不是文件夹本身。这是我的看法:

〜/ Desktop / .myDesktop1 ...〜/ Desktop / .myDesktop2 ...〜/ Desktop / .myDesktop3

甚至可能:〜/ Desktop / .myappdesktops / 1~ / Desktop / .myappdesktops / 2~ / Desktop / .myappdesktops / 3

如果你将东西移动到一个圆点文件夹中,它将保持隐藏状态。活跃的东西像往常一样停留在〜/ Desktop中,但是每个概念性“桌面”都存储在一个点文件中,因此它会保持隐藏状态。

警告: Time Machine。 :-)无论您的方法如何,更换文件的“集”都可能会对任何备份解决方案造成严重破坏。

答案 2 :(得分:0)

所以,回答我自己的问题:没有办法改变Snow Leopard或Lion中的桌面路径(尽管你看过它)。切换dasktops的唯一方法是移动内容本身,这可以通过一定程度的AppleScripts来完成:(。

另一种方式是这个应用程序在这里:)):

http://itunes.apple.com/us/app/projectdesktops/id499870251?ls=1&mt=12