通过单击应用程序中的一个按钮,在UWP Windows Phone模拟器上访问SD卡



我正在制作Windows Phone应用程序中,我希望能够在我的应用程序上添加一个按钮,这将使我能够在模拟器上访问虚拟SD卡,并且能够选择一个TXT文件并在应用程序中读取它。我也很陌生。

非常感谢

Rob。

通过单击应用程序中的按钮

中的UWP Windows手机模拟器上的访问SD卡

首先,通过配置模拟器附加工具的SD卡选项卡,请确保您具有"插入SD卡"。因此,可以使用用于仿真器的SD卡文件夹。有关如何配置的详细信息,请参考本文档的SD卡部分。

其次,在应用程序可以在SD卡上存储和访问文件之前,在应用清单文件中指定removableStorage功能。通常,您还必须注册以处理应用程序存储和访问的文件类型。例如,您需要访问SD卡存储中的txt文件,将应用程序清单配置如下:

<Applications>
...
    <Extensions>  
        <uap:Extension Category="windows.fileTypeAssociation">
          <uap:FileTypeAssociation Name="camera_assoication">
            <uap:SupportedFileTypes>
              <uap:FileType>.bmp</uap:FileType>
              <uap:FileType>.txt</uap:FileType>
              <uap:FileType>.gif</uap:FileType>       
            </uap:SupportedFileTypes>
          </uap:FileTypeAssociation>
        </uap:Extension>
    </Extensions>
  </Application>
</Applications>
<Capabilities>
  <Capability Name="internetClient" />
  <uap:Capability Name="removableStorage" />
</Capabilities>

有关功能的更多详细信息,请参考应用程序能力声明。

终于,现在您可以按照本文档上的示例来编写逻辑。例如,您想在SD卡中读取TXT文件,可以使用以下代码:

xaml

<TextBlock x:Name="txtreadresult"></TextBlock>
<Button x:Name="btnreadsd" Click="btnreadsd_Click" Content="read file from SD"></Button>

背后的代码
private async void btnreadsd_Click(object sender, RoutedEventArgs e)
{
   StorageFolder externalDevices = Windows.Storage.KnownFolders.RemovableDevices;
   // Get the first child folder, which represents the SD card.
   StorageFolder sdCard = (await externalDevices.GetFoldersAsync()).FirstOrDefault();
   if (sdCard != null)
   {
       // An SD card is present and the sdCard variable now contains a reference to it.
       StorageFile txtfile = await sdCard.GetFileAsync("text.txt");          
       string testtext = await FileIO.ReadTextAsync(txtfile);
       txtreadresult.Text = testtext;
   }
   else
   {
       // No SD card is present.
   }
}

最新更新