2013-11-21 40 views
0

我通過套接字傳輸文件。當我嘗試將文件保存到自定義目錄時,使用BinaryWrite函數得到此錯誤。C#UnauthorizedAccessException錯誤

private void downloadFromServer() 
{ 
    try 
    { 
     byte[] buffer = new byte[5000 * 1024]; 
     byte[] incomingFile = new byte[5000 * 1024]; 
     buffer = Encoding.Default.GetBytes(getUserName.Text + "Download" 
     + getFileName.Text + "end"); 
     clientSocket.Send(buffer); 
     activityLog.AppendText("Preparing to download... \n"); 
     while (incomingFile != null) 
     { 
     clientSocket.Receive(incomingFile); 

     int receivedBytesLen = incomingFile.Length; 
     int fileNameLen = BitConverter.ToInt32(incomingFile, 0); 
     File.WriteAllBytes(fileDir, incomingFile); 
     } 
     activityLog.AppendText("File saved to " + fileDir + "\n"); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

你確定你有訪問FILEDIR目錄? – ken2k

+0

我確定,但我該如何檢查? – Kaan

+0

我試圖通過C:\\保存到文件,而我的第二個磁盤E:\\都失敗,出現相同的錯誤 – Kaan

回答

0

File.WriteAllBytes(fileDir, incomingFile);需要文件名。從變量名稱看起來您正在使用文件夾名稱。即應該是@"e:\tempfile.bin"而不是@"e:\"

File.WriteAllBytes

給定一個字節陣列和文件路徑,此方法打開指定的文件時,該字節數組的內容寫入到該文件,然後關閉該文件。

注意如果fileDir意味着文件名不是你應該尋找在你的代碼中的其他不那麼真實的名字......

+0

感謝兄弟。有效。 – Kaan

相關問題