📜  uwp 可以使用 openfile (1)

📅  最后修改于: 2023-12-03 15:35:33.001000             🧑  作者: Mango

UWP中的OpenFile

在UWP应用程序中,OpenFile可以让应用程序打开一个文件或文件夹,让用户可以选择文件或文件夹。

使用方法

在使用OpenFile之前,需要在appxmanifest中声明文件夹和文件的类型,以获取用户授权。具体方法如下:

  1. 打开appxmanifest,添加以下代码:
<Package ...>
  <Capabilities>
    <uap:Capability Name="picturesLibrary"/>
    <uap:Capability Name="documentsLibrary"/>
    <uap:Capability Name="musicLibrary"/>
    <uap:Capability Name="videosLibrary"/>
    <uap:Capability Name="enterpriseAuthentication"/>
    <uap:Capability Name="sharedUserCertificates"/>
    <uap:Capability Name="internetClient"/>    
    <uap:Capability Name="internetClientServer"/>  
    ...
  </Capabilities>
</Package>
  1. 在需要使用OpenFile的代码中调用以下代码:
var filePicker = new FileOpenPicker();
filePicker.ViewMode = PickerViewMode.List;
filePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
filePicker.FileTypeFilter.Add(".txt");
filePicker.FileTypeFilter.Add(".doc");
filePicker.FileTypeFilter.Add(".docx");
filePicker.PickSingleFileAndContinue();

调用PickSingleFileAndContinue()后,应用程序等待用户选择文件。选择完成后,应用程序将停止并返回到之前的状态(调用OnActivated()方法)。

返回结果

调用PickSingleFileAndContinue()时,应用程序将返回以下参数:

protected override void OnActivated(IActivatedEventArgs args)
{
    ...
    if (args.Kind == ActivationKind.PickFileContinuation)
    {
        var file = ((FileOpenPickerContinuationEventArgs)args).Files.FirstOrDefault();
        if (file != null)
        {
            // 对文件进行处理
        }
    }
}

file变量就是用户选择的文件。可以对文件进行一些处理,比如上传到服务器,保存到本地等等。

总结

通过OpenFile,我们可以让用户方便地选择文件,从而实现应用程序的更多功能。在使用OpenFile前,需要确保已经声明了文件夹和文件的类型,并获取了用户授权。调用PickSingleFileAndContinue()方法后,需要在OnActivated()方法中处理用户选择的文件。