如何在uwp中从SD卡启动文件?

问题描述 投票:0回答:2

我正在尝试为Windows 10移动版创建一个文件浏览器 我需要从pathes(未安装的目录)启动默认应用程序的文件 恩。 “d:\ test.pdf”这是我尝试过的:

string p = @"a.jpg";
StorageFolder externalDevices = Windows.Storage.KnownFolders.RemovableDevices; 
StorageFile file = await externalDevices.GetFileAsync(p); 
var success = await Launcher.LaunchFileAsync(fff);
c# uwp windows-10-mobile
2个回答
0
投票

你可以使用Windows.System.Launcher API来启动文件的默认处理程序,你可以阅读更多here

async void DefaultLaunch()
  {
     // Path to the file in the app package to launch
string imageFile = @"images\test.png";

var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(imageFile);

if (file != null)
{
  // Launch the retrieved file
  var success = await Windows.System.Launcher.LaunchFileAsync(file);

  if (success)
  {
     // File launched
  }
  else
  {
     // File launch failed
  }
 }
  else
   {
   // Could not find file
   }
 }

0
投票

如果您想从SD卡访问文件,请确保您已阅读文档中的What you can and can't access on the SD card部分。

您的应用只能读取和写入应用已注册要在应用清单文件中处理的文件类型的文件。您的应用还可以创建和管理文件夹。确保在appxmanifest的功能中选中“可移动存储”。

您必须在Package.appxmanifest中声明文件类型关联才能从SD卡读取文件。以下是我设置的示例:

enter image description here

然后,我使用以下代码示例成功启动SD卡上“新文件夹”中包含的图片。

string p = @"1.jpg";
StorageFolder externalDevices = Windows.Storage.KnownFolders.RemovableDevices;
var rootfolder = (await externalDevices.GetFoldersAsync()).FirstOrDefault();
var folder = await rootfolder.GetFolderAsync("New folder");
var file = await folder.GetFileAsync(p); 
var success = await Launcher.LaunchFileAsync(file);
© www.soinside.com 2019 - 2024. All rights reserved.