1

我有一个带有文件路径的数组(例如“C:\ ...”),我想从我的应用程序中使用默认应用程序打开它们。假设它是一个列表,当我单击其中一个时,它会打开。

这是启动文件异步的方式:

await Windows.System.Launcher.LaunchFileAsync(fileToLaunch);

它需要一种Windows.Storage.StorageFile文件类型,该文件具有Path只读属性,因此我无法设置路径。轻按/单击后如何打开它们?

4

4 回答 4

4

从我在评论中的链接复制:

// Path to the file in the app package to launch
   string exeFile = @"C:\Program Files (x86)\Steam\steamapps\common\Skyrim\TESV.exe";

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

   if (file != null)
   {
      // Set the option to show the picker
      var options = new Windows.System.LauncherOptions();
      options.DisplayApplicationPicker = true;

      // Launch the retrieved file
      bool success = await Windows.System.Launcher.LaunchFileAsync(file, options);
      if (success)
      {
         // File launched
      }
      else
      {
         // File launch failed
      }
   }

您当然可以省略var options = **-Part,这样 ApplicationPicker 就不会被打开

或者你可以使用这个:

StorageFile fileToLaunch = StorageFile.GetFileFromPathAsync(myFilePath);
await Windows.System.Launcher.LaunchFileAsync(fileToLaunch);
于 2012-09-17T10:30:01.210 回答
2

您应该 在类型上使用此方法http://msdn.microsoft.com/en-US/library/windows/apps/windows.storage.storagefile.getfilefrompathasync 此方法用于获取文件,如果您已经有
StorageFile

path

于 2012-09-17T10:31:37.887 回答
0

答案在此示例中:http ://code.msdn.microsoft.com/windowsapps/Association-Launching-535d2cec

简短的回答是:

// First, get the image file from the package's image directory.
string fileToLaunch = @"images\Icon.Targetsize-256.png";
var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(fileToLaunch);

// Next, launch the file.
bool success = await Windows.System.Launcher.LaunchFileAsync(file);
于 2013-05-20T21:02:44.567 回答
0

最好的解决方案是这样的:

string filePath = @"file:///C:\Somewhere\something.pdf";

    if (filePath != null)
    {
       bool success = await Windows.System.Launcher.LaunchUriAsync(new Uri(filePath));
       if (success)
       {
          // File launched
       }
       else
       {
          // File launch failed
       }
    }

Tha 应用程序使用系统默认应用程序启动它,在这种情况下使用 Adob​​e Reader。

于 2015-12-18T10:39:50.770 回答