2013-04-26 25 views
5

私は常に「C:」を追加しているようだ保存バイト配列

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

使用する場合は最初にそれがCに保存しようとするので:\サーバー\ tempに...

これを回避する方法はありますか?

+3

文字列リテラル( '@'の前に): 'WriteAllBytes(@" \\ server \ tmp \ ": + FileName、fileData); ' – newfurniturey

答えて

8

ダブルバックスラッシュがエスケープされていないためです。

が、この代わりに試してみてください:

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

+1。私は今、完全な馬鹿のように感じる!ありがとう – griegs

3

あなたの現在のパスがc:\server\tmp\...がデフォルトになります\server\tmp\...に評価されます。 UNCパスを作るために

、あなたは余分なディレクトリ区切りをエスケープ必要があります

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

またはあなたの代わりに文字列リテラルを使用することができます。

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

+1とありがとう。そこに完全な記憶停止があった。 – griegs

1

どのように彼についての:

System.IO.File.WriteAllBytes(Path.Combine(@"\\server\tmp", FileName), fileData); 
関連する問題