' ExportFilterオブジェクトを作成します
Dim ep As ExportProvider = pds.SupportedExportProviders(cbExporter.SelectedIndex)
Dim ef As ExportFilter = TryCast(ep.NewExporter(), ExportFilter)
If (TypeOf ef Is BmpFilter OrElse TypeOf ef Is JpegFilter OrElse TypeOf ef Is PngFilter OrElse TypeOf ef Is GifFilter) Then
' これらのエクスポートフィルタは、エクスポートするときに複数のファイルを作成します
' この場合はディレクトリを要求します
If ef.UseZipForMultipleFiles = True Then
' zipファイルを要求します
Dim fsp As New FileSavePicker()
fsp.DefaultFileExtension = ".zip"
fsp.SuggestedFileName = Path.GetFileNameWithoutExtension(fileName) + ".zip"
ef.StorageFile = Await fsp.PickSaveFileAsync()
If ef.StorageFile Is Nothing Then
Return
End If
Else
Dim fp As New FolderPicker()
fp.FileTypeFilter.Add("." + ep.DefaultExtension)
fp.FileTypeFilter.Add(".zip")
ef.StorageFolder = Await fp.PickSingleFolderAsync()
If ef.StorageFolder Is Nothing Then
' ユーザーがエクスポートをキャンセルします
Return
End If
End If
Else
' ファイルを要求します
Dim fsp As New FileSavePicker()
fsp.DefaultFileExtension = "." + ep.DefaultExtension
fsp.FileTypeChoices.Add(ep.FormatName + " (." + ep.DefaultExtension + ")", New String() {"." + ep.DefaultExtension})
fsp.SuggestedFileName = Path.GetFileNameWithoutExtension(fileName) + "." + ep.DefaultExtension
ef.StorageFile = Await fsp.PickSaveFileAsync()
If ef.StorageFile Is Nothing Then
Return
End If
End If
Try
Await pds.ExportAsync(ef)
Catch ex As Exception
Dim md As New MessageDialog(String.Format("エクスポートに失敗しました", ex.Message), "エラー")
Await md.ShowAsync()
End Try