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

时间:2017-12-25 10:54:30

标签: c# uwp windows-10-mobile

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

string p = @"a.jpg";
StorageFolder externalDevices = Windows.Storage.KnownFolders.RemovableDevices; 
StorageFile file = await externalDevices.GetFileAsync(p); 
var success = await Launcher.LaunchFileAsync(fff);

2 个答案:

答案 0 :(得分: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
   }
 }

答案 1 :(得分: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);