golang:在Windows上运行pdf文件的默认应用程序

我想从默认应用程序中打开文件系统中的PDF文件。 我怎样才能做到这一点? 从命令行我只写PDF文件的文件名和应用程序打开(与请求的文件)。 当我尝试使用exec.Command()我得到一个错误(不奇怪) exec: "foo.pdf": executable file not found in %PATH%

 package main import ( "log" "os/exec" ) func main() { cmd := exec.Command("foo.pdf") err := cmd.Start() if err != nil { log.Fatal(err) } err = cmd.Wait() if err != nil { log.Fatal(err) } } 

Solutions Collecting From Web of "golang:在Windows上运行pdf文件的默认应用程序"

您必须启动cmd /C start foo.pdf 。 这将使启动命令为您找到正确的可执行文件。

 cmd := exec.Command("cmd", "/C start path_to_foo.pdf") 
 exec.Command("rundll32.exe", "url.dll,FileProtocolHandler", "path_to_foo.pdf") 

也应该处理它。

请注意,仍然正确的方法是在ShellExecute()导出的ShellExecute() API函数周围使用C封装器,而“w32”库似乎马上就提供了这个封装器。