使用文件選取器能夠訪問除上面介紹的「應用程序存儲」和「用戶庫」兩個位置以外的本地文件或者文件夾。文件選取器是應用與系統進行交互的一個接口,經過文件選取器能夠在應用中直接與文件系統進行交互,訪問不一樣位置的文件或將文件存儲在指定位置。spa
文件選取器包含文件打開選取器和文件保存選取器,文件打開選取器由FileOpenPicker類表示,用來選擇或打開文件,而文件保存選取器由FileSavePicker類表示,用來在保存文件時對文件的擴展名、存儲位置等進行選擇。這兩種選擇器的使用方法大體相同,因此下面以文件打開選取器爲例進行介紹。orm
在使用文件打開選取器的過程當中,經過設置文件打開選取器的屬性能夠自定義文件選取器的視圖模式、初始位置或文件類型集合。下面先來介紹一下文件打開選取器的幾個經常使用屬性。對象
q ViewMode,獲取或設置文件打開選取器用來展現文件或文件夾的視圖模式。屬性的值由PickerViewMode枚舉指定,該枚舉包含兩個枚舉成員,List和Thumbnail,List表示列表模式,Thumbnail則表示縮略圖模式。接口
q SuggestedStartLocation,獲取或者設置文件打開選取器顯示的初始位置。屬性的值由PickerViewMode枚舉指定,此枚舉有8個枚舉成員分別用來表示不一樣的位置,包括計算機、圖片庫等,這裏再也不一一列舉。圖片
q FileTypeFilter,獲取文件打開選取器顯示的文件類型集合,這些文件類型能夠是「.doc」、「.png」等。ip
在瞭解了經常使用屬性以後,接下來給出一段建立文件打開選取器的示例代碼。ci
//建立文件選取器element
FileOpenPicker openPicker = new FileOpenPicker();it
//將ViewMode屬性設爲Thumbnailio
openPicker.ViewMode = PickerViewMode.Thumbnail;
//將文件選取器打開文件的開始位置設置爲圖片庫
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
//設置選取器能夠選取的文件格式
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");
代碼建立了一個FileOpenPicker類的對象openPicker做爲文件打開選取器,設置openPicker的ViewMode屬性的值爲PickerViewMode.Thumbnail,將視圖模式設定爲縮略圖模式,經過SuggestedStartLocation屬性將選擇器的初始位置定位在圖片庫,並使用FileTypeFilter屬性獲取選擇器顯示的文件類型集合,而後調用Add方法將須要使用的文件類型添加到集合中。
建立了文件打開選取器以後,就能夠經過文件打開選取器來選擇文件了。當須要選擇單個文件時,使用文件打開選取器的PickSingleFileAsync方法能夠實現。示例代碼以下所示:
Windows.Storage.StorageFile file = await openPicker.PickSingleFileAsync();
if (file != null)
{
// 在頁面中顯示所選文件名稱
}
else
{
//在頁面中提示用戶沒有文件返回
}
代碼在獲取到選定的文件file後,對file進行了判斷,若是file不爲空,則顯示文件的名稱,不然顯示「沒有文件返回」。
而當使用文件打開選取器選擇多個文件時,須要調用選取器的PickMultipleFilesAsync方法,示例代碼以下所示:
IReadOnlyList<Windows.Storage.StorageFile> files = await openPicker.PickMultipleFilesAsync();
if (files.Count > 0)
{
// 顯示全部文件名稱
foreach (Windows.Storage.StorageFile file in files)
{
//在頁面中顯示所選文件名稱
}
}
else
{
//在頁面中提示用戶「沒有文件返回」
}
代碼首先獲取選定的文件集合files,而後判斷集合files的元素個數是否大於0,若是大於0,依次顯示集合中全部文件的名稱,不然顯示提示信息「沒有文件返回」。