You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Go语言中调用Windows默认文本编辑器打开TXT文件并查询关联位置

在Go中调用Windows默认文本编辑器打开TXT文件

一、直接实现打开默认程序(推荐方案)

不用手动查找文件关联信息,Windows自带的start命令可以直接调用系统默认程序打开指定文件,Go里通过os/exec包执行这个命令即可,简单可靠。

代码示例:

package main

import (
	"log"
	"os/exec"
)

func main() {
	txtFilePath := "your_file.txt" // 替换成实际的TXT文件路径
	// 用cmd /c start 执行,空字符串参数用于兼容含空格的路径
	cmd := exec.Command("cmd", "/c", "start", "", txtFilePath)
	if err := cmd.Run(); err != nil {
		log.Fatalf("打开文件失败: %v", err)
	}
}

说明:start命令后的空字符串是为了处理路径或文件名包含空格的场景,避免命令解析出错。这种方式完全依赖系统的默认关联配置,不需要你手动读取注册表。

二、Windows文件关联信息的存储位置

如果需要了解底层的关联存储路径,主要在Windows注册表中,分几个关键位置:

  • 用户自定义关联:HKEY_CURRENT_USER\Software\Classes,每个扩展名对应一个键(比如.txt),其默认值指向对应的程序类(如txtfile),再到HKEY_CURRENT_USER\Software\Classes\txtfile\shell\open\command就能找到打开该类型文件的默认命令。
  • 系统全局关联:HKEY_LOCAL_MACHINE\Software\Classes,结构和用户级一致,是系统默认的关联配置,当用户没有自定义时会使用这里的设置。
  • 现代应用关联(Win10+):HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt下的UserChoice键,记录了用户手动设置的默认应用信息。

如果要在Go中读取注册表,需要用到golang.org/x/sys/windows/registry包,但除非有特殊需求,否则不建议这么做——用start命令是最省心的方式。

内容的提问来源于stack exchange,提问作者mei30

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:37:12