首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在代码中为Mac OS X上的给定文件扩展名设置默认应用程序

在代码中为Mac OS X上的给定文件扩展名设置默认应用程序,可以使用以下方法:

  1. 使用LaunchServices框架:
代码语言:swift
复制
import Foundation
import LaunchServices

func setDefaultApplication(forExtension ext: String, bundleID: String) -> Bool {
    let ext = ext as CFString
    let bundleID = bundleID as CFString
    let error = LSSetDefaultHandlerForURLScheme(ext, bundleID)
    return error == noErr
}

let extension = "txt"
let bundleID = "com.apple.TextEdit"
let success = setDefaultApplication(forExtension: extension, bundleID: bundleID)

if success {
    print("成功设置\(extension)文件的默认应用为\(bundleID)")
} else {
    print("设置失败")
}
  1. 使用duti命令行工具:
代码语言:swift
复制
import Foundation

func setDefaultApplication(forExtension ext: String, bundleID: String) -> Bool {
    let task = Process()
    task.launchPath = "/usr/bin/duti"
    task.arguments = ["-s", bundleID, ext]
    task.launch()
    task.waitUntilExit()
    return task.terminationStatus == 0
}

let extension = "txt"
let bundleID = "com.apple.TextEdit"
let success = setDefaultApplication(forExtension: extension, bundleID: bundleID)

if success {
    print("成功设置\(extension)文件的默认应用为\(bundleID)")
} else {
    print("设置失败")
}

这两种方法都可以实现为Mac OS X上的给定文件扩展名设置默认应用程序。使用LaunchServices框架的方法需要导入FoundationLaunchServices模块,而使用duti命令行工具的方法则需要导入Foundation模块。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

dotnet publish

输出包括以下资产: 扩展名为 dll 程序集中中间语言 (IL) 代码。 包含项目所有依赖项 .deps.json 文件。...如果特定项目的 IsPublishable 属性设置 false,则无法调用 Publish 目标,并且 dotnet publish 命令仅在项目运行隐式 dotnet restore。...默认情况下,MSBuild 会在 Properties/PublishProfiles 文件查找,并假定 .pubxml 文件扩展名。...这是用于设置运行时标识符 (RID) 简写语法,其中提供值与默认 RID 相结合。 例如, win-x64 计算机上,指定 --arch x86 会将 RID 设置 win-x86。...大多数项目的默认配置 Debug,但你可以覆盖项目中生成配置设置。 -f|--framework 指定目标框架发布应用程序。 必须在项目文件中指定目标框架。

2.1K10

C++ 环境设置

文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。 文本编辑器名称和版本不同操作系统可能会有所不同。...C++ 程序文件通常使用扩展名 .cpp、.cp 或 .c。 开始编程之前,请确保您有一个文本编辑器,且有足够经验来编写一个计算机程序,然后把它保存在一个文件,编译并执行它。...C++ 编译器 写在源文件代码是人类可读源。它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序。 C++ 编译器用于把源代码编译成最终可执行程序。...大多数 C++ 编译器并不在乎源文件扩展名,但是如果您未指定扩展名,则默认使用 .cpp。...Thread model: posix gcc version 4.1.2 20080704 (Red Hat 4.1.2-46) Mac OS X 安装 如果您使用Mac OS X,最快捷获取

2.3K51

如何进行环境配置

文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。 文本编辑器名称和版本不同操作系统可能会有所不同。...C++ 程序文件通常使用扩展名 .cpp、.cp 或 .c。 开始编程之前,请确保您有一个文本编辑器,且有足够经验来编写一个计算机程序,然后把它保存在一个文件,编译并执行它。...C++ 编译器 写在源文件代码是人类可读源。它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序。 C++ 编译器用于把源代码编译成最终可执行程序。...大多数 C++ 编译器并不在乎源文件扩展名,但是如果您未指定扩展名,则默认使用 .cpp。...Mac OS X 安装 如果您使用Mac OS X,最快捷获取 GCC 方法是从苹果网站上下载 Xcode 开发环境,并按照安装说明进行安装。

1.2K20

如何进行内存设置

文本编辑器包括 Windows Notepad、OS Edit command、Brief、Epsilon、EMACS 和 vim/vi。 文本编辑器名称和版本不同操作系统可能会有所不同。...C++ 程序文件通常使用扩展名 .cpp、.cp 或 .c。 开始编程之前,请确保您有一个文本编辑器,且有足够经验来编写一个计算机程序,然后把它保存在一个文件,编译并执行它。...C++ 编译器 写在源文件代码是人类可读源。它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序。 C++ 编译器用于把源代码编译成最终可执行程序。...大多数 C++ 编译器并不在乎源文件扩展名,但是如果您未指定扩展名,则默认使用 .cpp。...Mac OS X 安装 如果您使用Mac OS X,最快捷获取 GCC 方法是从苹果网站上下载 Xcode 开发环境,并按照安装说明进行安装。

1.3K20

Git汇总--常见问题及延伸阅读

Git忽略语法 *.a # 忽略所有以 .a 扩展名文件。 !lib.a # 但是 lib.a 文件或者目录不要忽略,即使前面设置了对 *.a 忽略。...文件名大小写问题 Linux、Solaris、BSD及其他类Unix操作系统使用是大小写敏感文件系统,而Windows和Mac OS X默认安装)文件系统则是大小写不敏感文件系统。...即用文件名README、readme以及Readme(混合大小写)进行访问,Linux等操作系统上访问是不同文件,而在Windows和Mac OS X则指向同一个文件。...换句话说,两个不同文件README和readmeLinux等操作系统可以共存,而在Windows和Mac OS X,这两个文件只能同时存在一个,另一个会被覆盖,因为大小写不敏感操作系统看来,这两个文件是同一个文件...LF,“\\n”表示:用于Multics、Unix、类Unix(如GNU/Linux、AIX、Xenix、Mac OS X、FreeBSD等)、BeOS、Amiga、RISC OS等操作系统 CR,“

47441

dotnet build

二进制文件包括扩展名为 .dll 中间语言 (IL) 文件项目代码。...根据项目类型和设置,可能会包含其他文件,例如: 可用于运行应用程序可执行文件(如果项目类型是面向 .NET Core 3.0 或更高版本可执行文件)。 用于调试扩展名为 .pdb 符号文件。...这是用于设置运行时标识符 (RID) 简写语法,其中提供值与默认 RID 相结合。 例如, win-x64 计算机上,指定 --arch x86 会将 RID 设置 win-x86。...大多数项目的默认配置 Debug,但你可以覆盖项目中生成配置设置。 -f|--framework 编译特定框架。 必须在项目文件定义该框架。...这是用于设置运行时标识符 (RID) 简写语法,其中提供值与默认 RID 相结合。 例如, win-x64 计算机上,指定 --os os 会将 RID 设置 os-x64。

1.9K20

翻译qmake文档(四) Building Common Project Types

虽然所有的项目类型使用大量相同变量,但是它们每一个都使用项目特定变量来自定义输出文件。      这里不会描述特定于平台变量。...更多详细修改请查看  Qt for Windows - Deployment 和 Qt for Mac OS X....它默认是项目文件名称。(如果需要扩展名,会自动添) DESTDIR - 存放目标可执行程序文件夹 。 DEFINES - 应用程序需要额外添加预处理定义列表。...VERSION - 目标库版本号。如例 2.3.1      库目标文件名是依赖于平台。例如,X11和Mac OS X,库名字将用lib作为前缀。windows平台,文件名没有前缀。...,,d) } 在上面代码片段默认行为是修改在debug模式下进行构建生成目标名字。

909100

Hello Qt——QMake用户指南

-macx:qmake运行在Mac OS X模式,会使用unix文件和路径命名规范,增加对macx测试会成功,是Mac OS X平台默认模式。...1、Mac OS X平台 本平台特有的特性包括支持创建通用二进制文件、框架和捆绑包。 A、源包和二进制包 源包中提供qmake版本与二进制包中提供配置略有不同,因为它使用了不同特性规范。...E、创建和移动XCode项目 MAC OS X平台开发者可以利用qmake对XCode工程文件支持,通过运行qmake从已有的qmake工程文件生成一个XCode工程。...E、Capability Capability应用程序定义额外特权,例如列出文件系统所有文件能力。...6、文件扩展 正常情况下,qmake会尝试平台使用适当文件扩展名。但是,有时需要重写每个平台默认选项,并显式定义用于qmake文件扩展名

5.2K20

Duplicate Files Sweeper for Mac(重复文件清理工具)

Duplicate Files Sweeper for Mac可帮助您对Mac进行彻底扫描,以查找可能分散Mac各个文件重复文件,照片,音乐,视频,档案,甚至重复应用程序。...第6步:将选定文件移至废纸and,并在Mac恢复宝贵空间,并整理数据。您也可以绕过垃圾箱删除文件或将其移动到所需文件夹。这些设置可以首选项->删除设置 步骤7:瞧!...快速扫描 快速扫描Mac上选定文件重复文件 照片库查找确切重复照片 从扫描中排除文件夹和特定文件扩展名 准确结果 与扫描文件数量无关,“重复文件清除程序”可为您提供准确结果...快速清理 将重复文件移到“已删除邮件”,或 绕过垃圾箱删除文件,或者 将重复文件移动到单独文件夹 与其他重复文件修复程序不同,它不会强迫您删除每个重复文件说“是或否”。...和平地查找并删除Mac中所有重复文件。 兼容性 OS X 10.11或更高版本,64位处理器

48820

苹果 macOS Finder 安全漏洞打补丁,却没有考虑大小写字母:白打。。。

哦,好,我们会使用File://或 fiLE://......。 苹果macOS Finder应用程序目前很容易受到远程代码执行漏洞影响,尽管该公司显然试图解决这个问题。...从理论讲,苹果两种macOS安全机制 Quarantine(用于防止下载件没有用户操作情况下启动)和Gatekeeper(用于强制执行代码签名)应该可以防止这类问题。...但是当IT外媒The Register测试概念证明(PoC)文件时,该文件没有任何警告情况下执行。据安全研究人员Patrick Wardle声称,PoC代码绕过了这两种机制。...十多年前,苹果操作系统软件受到了类似缺陷(CVE-2009-2811)影响,当时曝出问题Mac OS X 10.5.8 .fileloc 扩展名。...如果格式和拖放在Finder应用程序内得到支持,可以通过文本编辑器输入URL并将文本拖到macOS桌面上来创建.inetloc文件。 这是PoC文件样子。

41610

使用MONOMAC OS开发——同步日志(二)

一篇使用MONOMAC OS开发——同步日志(一)讲述了MAC OS读取配置文件以及写日志,那么只算是完成了基本配置,下面的才是重点。 由于时间关系,就简单描述下,并不具体分析源码。...你可以MONO官网去下载。注意“MonoFramework-MRE-2.10.5_0.macos10.xamarin.x86.dmg”低版本MAC OS运行有问题。...,1天不到就可以写完,但是移植到Mac OS问题就来了。...需要在Mac OS使用MonoDevelop(MONO开发工具)编译生成。 Mac文件系统与Window系统很不一样,使用.NET代码获取路径时,比如程序启动路径等均无法获取。...MONO for Mac OS不支持控制台应用程序,画Window应用程序界面最好用Gtk#画,否则可能界面显示可能会有问题。

1.7K30

qmake:变量手册

以下选项定义应用程序或库类型: qt:目标是 Qt 应用程序或库,需要 Qt 库和头文件。Qt 库正确包含和库路径将自动添加到项目中。这是默认定义x11:目标是 X11 应用程序或库。...embed_manifest_exe:作为应用程序项目的一部分创建 EXE 嵌入清单文件。 以下选项仅在 macOS 生效: app_bundle:将可执行文件放入一个包(这是默认设置)。...qmake 会自动检测头文件类是否需要 moc,并将相应依赖项和文件添加到项目中,用于生成和链接 moc 文件。 30、ICON 此变量仅用于 Mac OS 设置应用程序图标。...82、QMAKE_EXT_OBJ 包含用于生成目标文件扩展名。 83、QMAKE_EXT_CPP 包含应解释 C++ 源代码文件后缀。...140、QMAKE_MAC_SDK macOS 构建通用二进制文件时使用此变量。

3.5K20

Shell脚本编程30分钟入门

OS 当前主流操作系统都支持shell编程,本文档所述shell编程是指Linux下shell,讲基本都是POSIX标准下功能,所以,也适用于Unix及BSD(如Mac OS)。...Linux Linux默认安装就带了shell解释器。 Mac OS Mac OS不仅带了sh、bash这两个最基础解释器,还内置了ksh、csh、zsh等不常用解释器。...4 Mar 22 10:22 /bin/sh -> bash 但在Mac OS不是,/bin/sh和/bin/bash是两个不同文件,尽管它们大小只相差100字节左右: iMac:~...这些年也成了一些linux发行版标配,至于mac os,它默认安装了perl、python、ruby、php、java等主流编程语言。...包含一个文件和执行一个文件一样,也要写这个文件路径,不能光写文件名,比如上述例子: . .

1.4K20

python语言一般用于什么_PYthon

X表示重大类软件更新; Y表示增强类软件更新; Z表示纠正类软件更新; 2. python环境搭设 2.1 Python3应用平台 包括 Windows、Linux 和 Mac OS X。...Unix或Windows中路径变量PATH(UNIX区分大小写,Windows不区分大小写)。 Mac OS,安装程序过程改变python安装路径。...file 在给定python文件执行python脚本。...从这个角度来看,Python 交互式解释器相当于一个功能无比强大“计算器”,比 Windows 、Mac OS X 系统自带计算器功能强大多了,让我们就从这个强大“计算器”开始学习 Python...解释器 当我们编写Python代码时,我们得到是一个包含Python代码以.py扩展名文本文件。要运行代码,就需要Python解释器去执行.py文件

98030

qmake手册(Qt5.9.3)

这个值是默认添加,但是你可以删除它来非Qt项目使用qmake。 x11 该项目是一个X11应用程序或库。如果目标使用Qt,则不需要此值。...例如: HEADERS = myclass.h \ login.h \ mainwindow.h ICON 此变量仅在Mac OS用于设置应用程序图标。...QMAKE_EXT_OBJ 包含在生成对象文件使用扩展名。 另请参阅文件扩展名。 QMAKE_EXT_CPP 包含应解释C ++源代码文件后缀。 另请参阅文件扩展名。...logo_71x71 标志图像文件大小71×71像素。这仅在Windows Phone受支持。 logo_150x150 标志图像文件大小150×150像素。...logo_620x300 初始屏幕图像文件大小620×300像素。这在Windows Phone不受支持。 logo_480x800 标志图像文件大小480×800像素。

5.2K20

如何创建可在 Apple 自研芯片和基于 Intel Mac 机上运行应用程序

前言 原生应用程序比转换应用程序运行效率更高,因为编译器能够针对目标架构来优化代码。如果一个应用程序只支持 x86_64 架构,那必须在 Apple 芯片 Rosetta 转换下运行。...调试和测试过程默认情况下,Xcode 仅针对当前系统架构构建版本,但是,它会为代码 Release 版本自动构建通用二进制文件。...尽管您可以基于 Intel Mac 计算机上创建此二进制文件,但是无法 arm64 架构运行或者调试,只有具有 Apple 芯片 Mac 才能运行和调试。.../Mail x86_64 arm64 指定应用程序启动行为 对于通用二进制文件,系统倾向于执行当前平台原生架构,基于 Intel Mac 电脑,系统始终执行 x86_64 架构。...确认您应用程序可以 Apple 芯片 和基于 Intel Mac 电脑正常运行之前,请不要包含此键值对。

2.1K30

macOS(Big Sur):eclipse下引用JDK 8 tools.jar 塈macOS下为eclipse设置JAVA_HOME环境变量问题

macOS 10以后默认脚本解释器是zsh,不再是bash,所以这里不是修改.bash_profile google一通找,下面这两篇文章让我基本搞明白了原因: 《Setting environment...=$(/usr/libexec/java_home)方式Mac OS X 10.10 and higher版本已经不再支持参见: 《HowTo: Set an Environment Variable...如何持久化1:.zshenv .zshenv 是ZSH环境变量设置文件,非交互式应用程序每次启动都会读取,将JAVA_HOME在这里设置,eclipse等应用程序就可以正确获取。...《HowTo: Set an Environment Variable in Mac OS X - launchd.plist》 具体做法还以JAVA_HOME例: /Library/LaunchDaemons...此方法是系统增加了环境变量设置,对电脑所有用户有效。

3.1K30

Go之Viper

它被设计用于应用程序工作,并且可以处理所有类型配置需求和格式; Viper是适用于Go应用程序(包括Twelve-Factor App)完整配置解决方案。...它被设计用于应用程序工作,并且可以处理所有类型配置需求和格式。...对于位于用户$HOME目录配置文件没有任何扩展名,如.bashrc; 当你使用如下方式读取配置时,viper会从./conf目录下查找任何以config文件配置文件,如果同时存在....:4001","/config/hugo.json") viper.SetConfigType("json") // 因为字节流没有文件扩展名,所以这里需要设置下类型。...viper包支持所有功能都被镜像viper实例方法; x := viper.New() y := viper.New() x.SetDefault("ContentDir", "content"

6.3K101
领券