Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 更改文件保存位置_Cocoa_Macos_Scripting_Background - Fatal编程技术网

Cocoa 更改文件保存位置

Cocoa 更改文件保存位置,cocoa,macos,scripting,background,Cocoa,Macos,Scripting,Background,我想知道是否有什么方法可以在Mac OS X上创建一个脚本来更改所有本机Cocoa应用程序的默认保存位置。我不知道从哪里开始,所以我愿意接受任何关于如何做到这一点的建议 谢谢你的帮助 为之前未启动的所有应用程序设置默认目录: defaults write NSGlobalDomain NSNavLastRootDirectory "~/Desktop" find ~/Library/Preferences -name "*.plist" -exec grep -l NSNavLastRootD

我想知道是否有什么方法可以在Mac OS X上创建一个脚本来更改所有本机Cocoa应用程序的默认保存位置。我不知道从哪里开始,所以我愿意接受任何关于如何做到这一点的建议


谢谢你的帮助

为之前未启动的所有应用程序设置默认目录:

defaults write NSGlobalDomain NSNavLastRootDirectory "~/Desktop"
find ~/Library/Preferences -name "*.plist" -exec grep -l NSNavLastRootDirectory {} \; | while read domain; do domain=${domain%.plist} ; defaults write "$domain" NSNavLastRootDirectory "~/Desktop"; done
覆盖以前启动过的应用程序的所有以前位置:

defaults write NSGlobalDomain NSNavLastRootDirectory "~/Desktop"
find ~/Library/Preferences -name "*.plist" -exec grep -l NSNavLastRootDirectory {} \; | while read domain; do domain=${domain%.plist} ; defaults write "$domain" NSNavLastRootDirectory "~/Desktop"; done

在这两种情况下,将“~/Desktop”替换为您的路径。如果它包含空格或波浪,不要忘记使用引号。

谢谢尼古拉。很好!但是,终端确实给了我以下错误:意外的参数~/Desktop;保持默认值不变。2009-08-18 12:18:41.353意外参数NSNavLastRootDirectory;保持默认值不变。意外论点2;保持默认值不变。意外参数NSNavLastRootDirectory;保持默认值不变。这正常吗?此外,如果应用程序已经打开,我认为没有办法更改位置……我修复了您遇到的错误(由于首选项目录中的应用程序标识符中的空格)。此外,我还为以前未启动的应用程序添加了首选项。现在,您可以决定是否要更改所有或仅那些以前未启动的路径。谢谢Nikolai,我真的非常感谢您的帮助!因此,我假设我的假设是正确的,即无法更改当前打开的应用程序的启动位置-完全可以,但我只是检查一下。我想不出一个简单的方法来影响打开的应用程序,因为运行的进程必须同步其首选项。也许可以使用某种代码注入,但我不想在这件事上弄脏我的手指。