📅  最后修改于: 2023-12-03 15:35:33.001000             🧑  作者: Mango
在UWP应用程序中,OpenFile
可以让应用程序打开一个文件或文件夹,让用户可以选择文件或文件夹。
在使用OpenFile
之前,需要在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>
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()
方法中处理用户选择的文件。