C#UnauthorizedAccessException错误

时间:2013-11-21 17:55:24

标签: c# .net sockets

我正在通过套接字传输文件。当我尝试将文件保存到自定义目录时,我使用BinaryWriter函数得到此错误。

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);
   }
}

1 个答案:

答案 0 :(得分:0)

File.WriteAllBytes(fileDir, incomingFile);需要文件名。从变量名称看起来您正在使用文件夹名称。即应该是@"e:\tempfile.bin"而不是@"e:\"

File.WriteAllBytes

  

给定一个字节数组和一个文件路径,此方法打开指定的文件,将字节数组的内容写入文件,然后关闭文件。

请注意,如果fileDir表示文件名,则应在整个代码中查找其他不太真实的名称...