2017-08-04 26 views
1

我有一個小問題。在下面的代碼中,我收到一個文件,並從Networkstream中獲取文件的結尾。之後,文件保存在我收到的路徑下。每次運行代碼我都會得到path.getinvalidpathchars例外。這裏是一個簡短的代碼示例:問題從c中的幾個字符串創建一個路徑#

 ns.Read(ending,0,1212); 
     string endung = "saved." + Encoding.UTF8.GetString(ending); 
     string path = Path.Combine(@"c:\users\user\desktop\" , endung); 
     Console.WriteLine(path); 
     File.WriteAllBytes(path ,file); 

字節數組文件是來自我收到的文件的字節數組。完整路徑是c:\users\user\desktop\saved.,其餘(txt,jpg,exe)應該是changebel(這意味着如果接收到的字符串sas「txt」路徑應該是c:\users\user\desktop\saved.txt,如果它是「exe」c:\users\user\desktop\saved.exe等等)!

+0

什麼'Console.WriteLine(path);'輸出? – Rahul

+0

'path.getinvalidpathchars'因此可能是無效字符,那麼什麼是完整路徑(不僅僅是'c:\ users \ user \ desktop \') – EpicKip

+0

我假設'Encoding.UTF8.GetString(ending)'是打印無效文件名字符。檢查該方法的結果 –

回答

0

我解決了StreamReader的問題!

 //byte[] file = File.ReadAllBytes(@"c:\users\user\desktop\file.txt"); 
     TcpListener listen = new TcpListener(IPAddress.Parse(mes),223); 
     listen.Start(); 
     TcpClient client = listen.AcceptTcpClient(); 
     NetworkStream ns = client.GetStream(); 
     StreamReader sre = new StreamReader(ns); 
     string ende = sre.ReadLine(); 
     string path = Path.Combine(@"c:\users\user\desktop\file2." + ende); 
     Console.WriteLine(path); 
     File.WriteAllBytes(path ,file); 
     listen.Stop(); 
相關問題