2013-04-26 42 views
5

Khi tôi sử dụngLưu Byte Array UNC Đường dẫn

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

Nó luôn luôn dường như thêm "C:" để bắt đầu cái nó cố gắng để lưu vào c: \ server \ temp ...

Có cách nào để giái quyết vấn đề này không?

+3

Hãy thử một chuỗi ký tự (thêm trước '@'): 'WriteAllBytes (@" \\ server \ tmp \ " + FileName, fileData), ' – newfurniturey

Trả lời

8

Tôi tin rằng điều này là do dấu chéo ngược kép không được thoát.

Hãy thử điều này thay vì:

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

+1. Tôi cảm thấy như một thằng ngốc hoàn toàn ngay bây giờ! Cảm ơn – griegs

3

con đường hiện tại của bạn để đánh giá \server\tmp\... đó sẽ mặc định c:\server\tmp\....

Để thực hiện một đường dẫn UNC, bạn sẽ cần thêm thư mục thoát-separator:

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

hoặc bạn có thể sử dụng một chuỗi đen thay vì:

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

+1 và cảm ơn. Đã có một bộ nhớ hoàn toàn bị đình chỉ ở đó. – griegs

1

Làm thế nào về mình :

System.IO.File.WriteAllBytes(Path.Combine(@"\\server\tmp", FileName), fileData); 
Các vấn đề liên quan