拒绝访问SD卡-UWP

时间:2019-01-23 15:06:16

标签: c# uwp sd-card access-denied

使用UWP,我正在尝试访问SD卡。我在Windows 10上。我已经进入Package.appxmanifest ...

在功能下,我已经选中了可移动存储

在声明下,我添加了一个文件类型关联。名称为“ txt”,文件类型为“ .txt”。相关部分...

  <Extensions>
    <uap:Extension Category="windows.fileTypeAssociation">
      <uap:FileTypeAssociation Name="txt">
        <uap:DisplayName>text</uap:DisplayName>
        <uap:SupportedFileTypes>
          <uap:FileType>.txt</uap:FileType>
        </uap:SupportedFileTypes>
      </uap:FileTypeAssociation>
    </uap:Extension>
  </Extensions>

我创建文本文件的代码...

    string fileName = @"D:\test.txt";

    using (FileStream fs = File.Create(fileName))
    {   
        Byte[] text = new UTF8Encoding(true).GetBytes("testing");
        fs.Write(text, 0, text.Length);
    }

每次“拒绝访问路径'D:\ text.txt'”时的结果

我能够手动创建文件并将其复制到此目录。那么,为什么不能使用UWP创建文件?我遵守了所有规则。我想念什么吗?

1 个答案:

答案 0 :(得分:2)

您不能使用File.Create()访问受限的UWP应用中的文件。您需要使用Windows.Storage命名空间中的功能。

private async void Test()
{
    string filePath = @"D:\";
    string fileName = @"Test.txt";

    // get StorageFile object
    StorageFolder folder = await StorageFolder.GetFolderFromPathAsync(filePath);
    StorageFile file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

    // Open Stream and Write content
    using (Stream stream = await file.OpenStreamForWriteAsync())
    {
        Byte[] text = new UTF8Encoding(true).GetBytes("testing");
        await stream.WriteAsync(text, 0, text.Length);
    }
}