我有一个带有文件路径的数组(例如“C:\ ...”),我想从我的应用程序中使用默认应用程序打开它们。假设它是一个列表,当我单击其中一个时,它会打开。
这是启动文件异步的方式:
await Windows.System.Launcher.LaunchFileAsync(fileToLaunch);
它需要一种Windows.Storage.StorageFile
文件类型,该文件具有Path
只读属性,因此我无法设置路径。轻按/单击后如何打开它们?
我有一个带有文件路径的数组(例如“C:\ ...”),我想从我的应用程序中使用默认应用程序打开它们。假设它是一个列表,当我单击其中一个时,它会打开。
这是启动文件异步的方式:
await Windows.System.Launcher.LaunchFileAsync(fileToLaunch);
它需要一种Windows.Storage.StorageFile
文件类型,该文件具有Path
只读属性,因此我无法设置路径。轻按/单击后如何打开它们?
从我在评论中的链接复制:
// 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);
您应该
在类型上使用此方法http://msdn.microsoft.com/en-US/library/windows/apps/windows.storage.storagefile.getfilefrompathasync
此方法用于获取文件,如果您已经有StorageFile
path
答案在此示例中: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);
最好的解决方案是这样的:
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 应用程序使用系统默认应用程序启动它,在这种情况下使用 Adobe Reader。