1 public static async Task<bool> DisplayApplicationPicker(string folderName, string fileName) 2 { 3 // Path to the file in the app package to launch 4 5 6 MessageDialog message = null; 7 StorageFolder storageFolder = null; 8 StorageFile GetStorageFile = null; 9 10 IReadOnlyList<StorageFolder> storageFolders; 11 12 bool isExist = false; 13 try 14 { 15 16 try 17 { 18 19 //在指定的应用程序文件夹下查找指定的文件 20 storageFolder = ApplicationData.Current.LocalFolder; 21 storageFolders = await storageFolder.GetFoldersAsync(); 22 isExist = storageFolders.Any(folder => folder.Name == folderName); 23 if (isExist) 24 { 25 storageFolder = await ApplicationData.Current.LocalFolder.GetFolderAsync(folderName); 26 27 } 28 else 29 { 30 storageFolder = await ApplicationData.Current.LocalFolder.CreateFolderAsync(folderName); 31 } 32 33 } 34 catch (System.IO.FileNotFoundException ex) 35 { 36 message = new MessageDialog(ex.Message); 37 message.ShowAsync(); 38 } 39 //判断是否有该文件 40 try 41 { 42 //在指定的应用程序文件夹下查找指定的文件 43 if (isExist) 44 { 45 IReadOnlyList<StorageFile> files = await storageFolder.GetFilesAsync(); 46 bool isExistfile = files.Any(file => file.Name == fileName); 47 if (!isExistfile) 48 { 49 message = new MessageDialog("Didn't find the specified file"); 50 message.ShowAsync(); 51 //todo: Written to the file Method 52 } 53 else 54 { 55 GetStorageFile = await storageFolder.GetFileAsync(fileName); 56 } 57 58 59 } 60 61 } 62 catch (System.IO.FileNotFoundException ex) 63 { 64 message = new MessageDialog(ex.Message); 65 message.ShowAsync(); 66 } 67 68 69 if (GetStorageFile != null) 70 { 71 // Set the option to show the picker 72 var options = new Windows.System.LauncherOptions(); 73 options.DisplayApplicationPicker = true; 74 75 // Launch the retrieved file 76 bool success = await Windows.System.Launcher.LaunchFileAsync(GetStorageFile, options); 77 78 if (success) 79 { 80 // File launched 81 return true; 82 83 } 84 else 85 { 86 // File launch failed 87 message = new MessageDialog("Please choose other open way"); 88 message.ShowAsync(); 89 return false; 90 91 } 92 } 93 else 94 { 95 message = new MessageDialog( "Didn't find the specified file"); 96 message.ShowAsync(); 97 return false; 98 } 99 100 101 } 102 catch (Exception ex) 103 { 104 message = new MessageDialog(ex.Message); 105 message.ShowAsync(); 106 return false; 107 } 108 109 }