文件访问被拒绝

时间:2019-04-10 15:07:29

标签: c# file uwp access-denied

我写了一个简单的c#代码以HttpMultipartForm格式发布音频文件,当我尝试访问硬盘中的文件时,它抛出了一个异常,即对路径的访问被拒绝。

using(var httpClient = new HttpClient())
{

   using(var request = new HttpRequestMessage(new HttpMethod("POST"),"https://www.iotype.com/api/recognize/file"))
   {

      multipartContent.Add(new StringContent("MyToken"), "token");
      multipartContent.Add(new ByteArrayContent(File.ReadAllBytes("C:\\audio.mp3")), "audio", Path.GetFileName("AUDIO_FILE.mp3"));

      request.Content = multipartContent;

      var response = await httpClient.SendAsync(request);
      txtStatus.Text = response.Content.ToString();

    }
 }

2 个答案:

答案 0 :(得分:0)

UWP应用程序在其可以访问的目录和文件方面受到限制。浏览限制的最简单方法是在Windows.Storage命名空间中使用WinRT类型,这两个主要类是StorageFolder和StorageFile。在Windows 8和8.1的Windows Runtime中,您不能使用FileStream或Directory / File类完全没有这使得编写可移植类库变得更加困难,因此尽管适用于您可以访问的目录和文件的限制,但在Windows 10的UWP中已放宽了此限制。 因此无法在UWP应用中使用文件类。

答案 1 :(得分:0)

UWP应用程序中,存在很多限制,因为它的应用程序嵌入到Windows中,这既出于体系结构的原因,也出于安全性的原因(应用程序域的隔离),它不会阻止它存在。在专用应用程序位置使用 Windows API 来管理信息(读取,写入)的几种方法。

UWP应用程序的不同存储:

  • 本地存储空间:

    It's a default file system for application and it's identified by LocalFolder Class .

  • 漫游存储:

    Has the same fearture than The Local Storage adding to that synchronization Data with windows Devices , identified by RoamingSettings Class.

  • 临时存储区:

    As his name indicates It’s used mainly for caching scenarios .