ユニバーサルWindowsアプリ(Pre)入門010:ファイル操作2

水曜日 , 24, 6月 2015 Leave a comment

 毎度のお約束、本記事はプレビュー状態のOS、IDE、SDKを利用しております。製品版では異なる可能性があります。

 

 本記事はWindows 10向けのユニバーサルWindowsアプリについて学んだことを残して行く記事です。

 これまでの記事はカテゴリ「UWP(Win 10) Preview」を参照ください。

 

ファイルピッカー

 

 今回もユニバーサルWindowsアプリのサンプルを動かしてみて、中身を解説します。今回はFilePickerを用いたファイル操作です。

FilePickerアプリの実行画面

FilePickerアプリの実行画面

 

 ファイルピッカーを利用すると、開くファイルを選択するためのポップアップを表示して、ユーザーにファイルを選択させることができます。

002

 

1.画像を一枚選択する

 

 ファイルピッカーを利用してファイルを一枚選択させます。

 

FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");
StorageFile file = await openPicker.PickSingleFileAsync();

 

 PickSingleFileAsyncメソッドを利用します。

 

2.複数枚のファイルを選択する

 

 一枚の時と処理自体はあまり変わりません。

 

FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.List;
openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
openPicker.FileTypeFilter.Add("*");
IReadOnlyList<StorageFile> files = await openPicker.PickMultipleFilesAsync();

 

 PickMultipleFilesAsyncメソッドを利用して、結果はリストとして受け取ります。

 

3.画像があるフォルダを取得する

 

 StorageFolder形式でフォルダーを受け取ります。

 

FolderPicker folderPicker = new FolderPicker();
folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
folderPicker.FileTypeFilter.Add(".docx");
folderPicker.FileTypeFilter.Add(".xlsx");
folderPicker.FileTypeFilter.Add(".pptx");
StorageFolder folder = await folderPicker.PickSingleFolderAsync();

 

4.画像を保存する

 

 ファイルを保存します。

 

FileSavePicker savePicker = new FileSavePicker();
savePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;

savePicker.FileTypeChoices.Add("Plain Text", new List<string>() { ".txt" });

savePicker.SuggestedFileName = "New Document";
StorageFile file = await savePicker.PickSaveFileAsync();
if (file != null)
{
    CachedFileManager.DeferUpdates(file);

    await FileIO.WriteTextAsync(file, file.Name);
    FileUpdateStatus status = await CachedFileManager.CompleteUpdatesAsync(file);

 


Please give us your valuable comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください