objective-c - 如何在 Mac OS X 中为特定文件类型设置默认应用程序?

标签 objective-c macos filesystems applescript

在 Mac OSX lion 中,我正在尝试为特定文件类型设置默认应用程序。 使用下面的苹果脚本,我们可以为特定的“file.abc”设置默认应用程序。

tell application "System Events"
set default application of file "/Users/test/Desktop/file.abc" to "/Applications/TextEdit.app"
end tell

但我想为所有文件类型或扩展名为“abc”的文件设置相同的应用程序作为默认应用程序。

我尝试了以下方法来完成它。它在 <HOME>/Library/Preferences/com.apple.LaunchServices.plist 中添加了一个条目.但是文件没有用指定的应用程序打开。

defaults write com.apple.LaunchServices LSHandlers -array-add "<dict><key>LSHandlerContentTag</key><string>abc</string><key>LSHandlerContentTagClass</key><string>public.abc</string><key>LSHandlerRoleAll</key><string>com.apple.textedit</string></dict>"

希望有人知道我缺少什么来实现它。


找到答案:

defaults write com.apple.LaunchServices LSHandlers -array-add "<dict><key>LSHandlerContentTag</key><string>ugurugu</string><key>LSHandlerContentTagClass</key><string>public.filename-extension</string><key>LSHandlerRoleAll</key<string>org.videolan.vlc</string></dict>"
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

最佳答案

也许您没有做错任何事,只是需要重新加载 com.apple.launchservices 文件。您可以注销、等待几分钟或强制启动服务重新启动。在下面的示例中,我说 public.comma-separated-values-text 文件(注意:这并不意味着每个 CSV 文件都是这种内容类型)必须使用 TextEdit 而不是 Excel 打开。

do shell script "defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = \"public.comma-separated-values-text\"; LSHandlerRoleAll = \"com.apple.TextEdit\"; }'"

do shell script "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user"

关于objective-c - 如何在 Mac OS X 中为特定文件类型设置默认应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9172226/

相关文章:

ios - 在 iOS 中点击关闭设备低电量警报时,应用程序导航到主屏幕

ios - ExtAudioFile - 如何设置元数据

python - 如何在 Python 中确定打开文件的大小?

java - find 命令不适用于 java,但适用于系统 shell

android - 我可以在 Android 中为多个用户创建共享文件夹吗?

objective-c - 使用 Objective C 将 RGB 彩色图像更改为灰度图像

objective-c - 在objective-c中创建现在的时间戳作为NSNumber

python - 在 Intel Mac OS X 上将 PATH AMPL 求解器与 Pyomo 结合使用

objective-c - Cocoa ViewController.m 与 Cocoa Touch ViewController.m

c++ - 在 MAC OS X 上创建桌面快捷方式(如 .desktop 在 linux 上)