【问题标题】:how to launch files from sd card in uwp?如何在 uwp 中从 sd 卡启动文件?
【发布时间】:2018-06-06 16:01:27
【问题描述】:

我正在尝试为 Windows 10 移动版创建文件资源管理器
我需要从路径(未安装目录)使用默认应用程序启动文件
前任。 “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);

【问题讨论】:

  • 欢迎来到 Stack Overflow!我们是一个问答网站,而不是一个雇佣编码员的服务。请解释您迄今为止尝试过的方法以及为什么没有奏效。
  • 我尝试过的:string p = @"a.jpg"; StorageFolder externalDevices = Windows.Storage.KnownFolders.RemovableDevices; StorageFile 文件 = 等待 externalDevices.GetFileAsync(p); var 成功 = 等待 Launcher.LaunchFileAsync(fff);

标签: c# uwp windows-10-mobile


【解决方案1】:

您可以使用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
   }
 }

【讨论】:

  • tnx 但正如我所说,我想像文件管理器一样从 sd 卡启动文件......我试过这段代码,但这只能在安装目录中工作
  • @Milad.P 您可以通过让用户与选择器交互来访问文件和文件夹。您可以使用 FileOpenPicker 和 FileSavePicker 类访问文件,并使用 FolderPicker 访问文件夹。你可以阅读更多here
【解决方案2】:

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

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

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

然后,我使用以下代码示例成功启动了包含在 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多