2013-04-26 66 views
5

當我使用保存字節數組UNC路徑

System.IO.File.WriteAllBytes("\\server\\tmp\\" + FileName, fileData); 

它似乎總是要加上「C:」來開頭,以便它試圖保存到C:\服務器\ TEMP ...

有沒有解決的辦法?

+3

嘗試一個字符串文字(預置'@'):'WriteAllBytes(@「\\ server \ tmp \」 + FileName,fileData);' – newfurniturey 2013-04-26 02:52:44

回答

8

我相信這是因爲雙反斜槓沒有逃脫。

試試這個:

System.IO.File.WriteAllBytes(@"\\server\tmp\" + FileName, fileData); 
+0

+1。我現在感覺自己像個白癡!謝謝 – griegs 2013-04-26 02:54:53

3

您當前的路徑計算爲\server\tmp\...將默認爲c:\server\tmp\...

爲了使UNC路徑,你需要一個額外的轉義目錄分隔:

System.IO.File.WriteAllBytes("\\\\server\\tmp\\" + FileName, fileData); 

你可以使用一個字符串字面來代替:

System.IO.File.WriteAllBytes(@"\\server\tmp\" + FileName, fileData); 
+0

+1,謝謝。有一個完整的內存停止在那裏。 – griegs 2013-04-26 03:04:06

1

如何對他:

System.IO.File.WriteAllBytes(Path.Combine(@"\\server\tmp", FileName), fileData);