2012-09-25 28 views
0

即使我使用了字符串,但我得到了「NotSupportedExeption未被用戶代碼處理 - 指定的路徑格式不受支持」的錯誤。使用正確格式時不支持的格式

string path = folder + "/" + filename; 

fileByte = File.ReadAllBytes(path); // error here 

任何想法是什麼問題是?

編輯的代碼,這

string path = Path.Combine(folder, filename); 

fileByte = File.ReadAllBytes(path); 

路徑爲「F:\網絡\ Opgaver \ Skirmer \ Hjemmesiden \ BETA \ Skirmer 2012-04-17 \ Skirmer 2012-04-17 \ Billeder \ GALLERI \ F:\ Web \ Opgaver \ Skirmer \ Hjemmesiden \ BETA \ Skirmer 17-04-2012 \ Skirmer 17-04-2012 \ Billeder \ Galleri \ 2011 \ Vingsted \ DSC_0001.JPG「

錯誤依然發生。我看到的是ReadAllBytes重新顯示一個顯示我得到的路徑的字符串,但它仍然顯示錯誤

+1

您應該使用'Path.Combine'而不是+運算符來將路徑合併到文件 –

+0

您想要讀取哪個文件?你能添加更多細節嗎? – RSB

+0

即時通訊設法讀取文件DSC_0001.JPG。你還想知道哪些其他信息? –

回答

2

您不應在路徑中使用/,因爲斜槓在Windows中是無效字符。使用Path.Combine,而不是創建它:

string path = Path.Combine(folder, filename); 
0

什麼是path變量的確切價值? 此外,您應該使用Path.Combine將路徑部分連接成完整路徑。

至於File.ReadAllBytes狀態的文檔:

NotSupportedException - path is in an invalid format. 
1

我認爲你要使用反斜槓,或而不管文件系統如何返回正確分隔符的屬性Path.DirectorySeparatorChar

string path = folder + Path.DirectorySeparatorChar.ToString() + filename; 

或者你可以使用Path.Combine方法:

string path = Path.Combine(folder, filename); 
0

如果您在編輯的問題發佈真正的路徑是嘗試由然後你得到異常的原因讀取路徑是因爲你在路徑中有兩個冒號。驅動器號重複兩次(F:\...F:\...)。

您最終選擇該路徑的原因完全取決於撥打Path.Combine()folderfilename的內容。 folderfilename都不可能以全路徑開始,因爲Path.Combine()將返回filename作爲該情況下的組合路徑。很可能您的folder變量已經包含兩個基本路徑副本,其中包含兩個驅動器號,因此包含兩個冒號,因此會導致NotSupportedExeption,然後再調用Path.Combine()