2013-04-26 17 views
5

Gdy używamZapisz Byte Array do ścieżki UNC

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

Wydaje się zawsze dodać "C:" na początku, więc próbuje zapisać do katalogu C: \ server \ temp ...

Czy istnieje sposób obejścia tego?

+3

Spróbuj napisać tekstowo (poprzedzając '@'): 'WriteAllBytes (@" \\ serwer \ tmp \ " + FileName, fileData); ' – newfurniturey

Odpowiedz

8

wierzę, to dlatego, że podwójny backslash nie uciekł.

Spróbuj to zamiast:

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

+1. Czuję się teraz jak kompletny idiota! Dzięki – griegs

3

Aktualna ścieżka ocenia się \server\tmp\... który będzie domyślnie c:\server\tmp\....

Aby utworzyć ścieżkę UNC, trzeba dodatkowy uciekł Directory Separator:

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

lub można użyć ciąg-dosłownego Zamiast:

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

+1 i dzięki. Miał miejsce pełne zatrzymanie pamięci. – griegs