从Async任务创建文件时System.UnauthorizedAccessException

时间:2016-09-17 16:55:55

标签: c#

我正在尝试从异步任务创建一个新的jpeg文件。相关的代码片段如下所示

private async void OnSocketConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
{
   await ReceiveFile(args);
}

private async Task ReceiveFile(StreamSocketListenerConnectionReceivedEventArgs args)
{
  string pathString = @"C:\Users\sarav\test.jpg";
  FileStream writeStream = new FileStream(pathString, FileMode.CreateNew, FileAccess.Write, FileShare.None, bufferSize: 4096, useAsync: true);
}

它在FileStream中抛出上面的System.UnauthorizedAccessException。相同路径的相同Filestream片段正在基于控制台的C#应用​​程序上工作,从某种意义上说,文件test.jpg正在创建。关于我在这里缺少的任何建议。

1 个答案:

答案 0 :(得分:0)

您很可能尝试在不同的用户下创建文件。在执行Thread.CurrentPrincipal之前,请在两个方案中查看new FileStream中的内容。

由于您在问题中没有确切的代码和环境设置,我无法提出确切的解决方案,但可以给出一个深入研究的方向。如果您有不同的用户,只需确保它可以访问您需要的特定目录。