2013-03-29 31 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