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

Windows下如何通过点击文件让Go可执行程序打开指定文件

解决Windows下Go程序关联文件并获取路径的问题

嗨,我来帮你搞定这个需求!其实Windows的逻辑很简单,我一步步给你讲清楚:

1. 先搞懂Windows怎么传递文件路径给你的程序

当你把某个文件(比如.txt)关联到你的Go可执行文件后,Windows会把你点击的文件的完整路径作为命令行参数传递给程序——就跟你在CMD里手动敲你的程序.exe "C:\xxx\test.txt"是一个效果。

需要注意的是,在Go里:

  • os.Args[0]是你程序自己的路径
  • os.Args[1]就是Windows传递过来的目标文件的完整路径(如果路径带空格,Windows会自动用双引号包裹,Go会自动处理成正确的单个参数,不用你手动拆分)

2. 修改你的Go程序来接收并处理文件路径

你只需要调整程序,检查是否有传入的文件参数,然后获取路径做后续操作。给你个示例代码:

package main

import (
	"fmt"
	"os"
)

func main() {
	// 先判断是否有传递文件参数
	if len(os.Args) < 2 {
		fmt.Println("请通过关联文件的方式启动程序,或者直接传入文件路径作为参数")
		fmt.Printf("用法:%s <文件路径>\n", os.Args[0])
		return
	}

	// 获取Windows传递的文件完整路径
	targetFilePath := os.Args[1]
	fmt.Println("当前处理的文件路径:", targetFilePath)

	// 这里写你的后续操作,比如读取文件内容
	fileContent, err := os.ReadFile(targetFilePath)
	if err != nil {
		fmt.Printf("读取文件出错:%v\n", err)
		return
	}

	fmt.Println("\n文件内容如下:")
	fmt.Println(string(fileContent))
}

把这个代码重新编译成Windows可执行文件,替换你之前的版本。

3. 完成文件关联的最终设置

你已经完成了选择打开方式的第一步,接下来只要确保默认关联生效:

  • 右键目标类型的文件(比如.txt)→ 打开方式 → 选择你的Go程序后,一定要勾选**「始终使用此应用打开.txt文件」**
  • 如果之前没勾选,也可以去Windows设置里修改:打开「设置」→「应用」→「默认应用」→「按文件类型选择默认应用」,找到对应的后缀(比如.txt),选择你的可执行文件即可。

4. 测试验证

  • 直接点击一个文本文件,你的程序应该会启动并打印出文件的完整路径和内容
  • 也可以先在CMD里测试:你的程序.exe "C:\测试目录\带空格的文件.txt",确认程序能正确处理带空格的路径

这样就搞定啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:51:35