2013-03-29 36 views
2

我有一个文件,os.open()给我回,no such file or directory。有没有一个函数可以转义文件名以获取正确的路径?同样的事情也净包QueryEscape?,但当然打开文件路径需要字符逃跑

这里的文件路径是路径名"Music/3OH!3 - Streets Of Gold 2010 [Cov+CD][Bubanee]/06. Touchin On My - 30H!3.mp3"

我只是用一个简单的

srcName := "Music/3OH!3 - Streets Of Gold 2010 [Cov+CD][Bubanee]/06. Touchin On My - 30H!3.mp3" 
src, err := os.Open(srcName) 
if err != nil { 
    fmt.Println(err) 
    return 
} 

该文件不存在顺便说一句,去只是不能遵循路径名称。 bash可以遵循的路径是Music/3OH\!3\ -\ Streets\ Of\ Gold\ \[Cov+CD\]\[Bubanee\]/12.\ Strrets\ Of\ Gold\ -\ 30H\!3.mp3,它显示了所有需要的转义。

+0

哪个平台?当你运行程序时什么是cwd? .mp3的完整(根源)路径名是什么? – zzzz

+0

完整的根是'/ Users/matt/Music/3OH!3 - 黄金街2010 [Cov + CD] [Bubanee]/06。 Touchin在我的 - 30H!3.mp3'上,这是在osx上。 – enjoylife

+0

您可以请重试使用根名称打开文件?如果仍然失败,请填写[问题报告](https://code.google.com/p/go/issues/list)。 PS:没有OSX,我无法自己调查。 – zzzz

回答

3

我试着在我的机器上创建相同的目录结构(Mac OS 10.8.3),并且使用代码打开文件时没有问题。这意味着已经打开的路径已正确转义。

确保您正在从Music/文件夹正上方的某个位置运行您的go程序,或者只使用完整的根路径srcName