Windows Store App之檔案選取器、檔案儲存器和檔案夾選取器

來源:互聯網
上載者:User

  在應用程式開發過程中經常需要使用到檔案開啟和檔案儲存,在Windows8中Windows.Storage.Pickers命名空間為其提供了開啟和儲存檔案的類:

描述
FileExtensionVector 表示副檔名的隨機訪問集合.
FileOpenPicker 表示允許使用者選擇和開啟檔案的 UI 元素的選取器.
FilePickerFileTypesOrderedMap 表示映射到關聯檔案類型(副檔名)的顯示名稱的集合.
FilePickerSelectedFilesArray 表示使用者已通過使用檔案選取器選擇的隱藏檔的集合
FileSavePicker 表示允許使用者為檔案選擇檔案名稱、副檔名和儲存位置的選取器.
FolderPicker 表示允許使用者選擇檔案夾的 UI 元素的選取器.

   若要使用檔案選取器和檔案儲存器,則需要在應用程式中添加選取器的聲明。雙擊開啟Package.appxmanifest,選擇"聲明"選項卡,添加檔案選取器和檔案儲存器,就可以了。

一.FileOpenPicker(檔案選取器)

屬性 描述

CommitButtonText

擷取或設定檔案開啟選取器的提交按鈕的標籤文本.

FileTypeFilter

擷取檔案開啟選取器顯示的文件類型的集合.

SettingsIdentifier

擷取或設定與檔案開啟選取器的狀態關聯的設定標識符.

SuggestedStartLocation

擷取或設定檔案開啟選取器在其中尋找要呈現給使用者的檔案的初始位置.

ViewMode

擷取或設定檔案開啟選取器用於顯示項目的視圖模式.

 

方法 描述
PickMultipleFilesAsync 顯示檔案選擇器,以便使用者可以選擇多個檔案.
PickSingleFileAsync 顯示該檔案選擇器,以便使用者可以選擇某檔案.

 

 1 /// <summary> 2 /// 選擇單個檔案 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 async private void btnOpenFile_Click(object sender, RoutedEventArgs e) 7 {     8     FileOpenPicker filePicker = new FileOpenPicker(); 9     filePicker.CommitButtonText = "確定";10     filePicker.FileTypeFilter.Add(".txt");11     filePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;12     filePicker.ViewMode = PickerViewMode.Thumbnail;13     StorageFile storageFile = await filePicker.PickSingleFileAsync();14     if (storageFile != null)15     {16         string fileContent = await FileIO.ReadTextAsync(storageFile);17         tbkContent.Text = fileContent;18     }19 }20 21 /// <summary>22 /// 選擇多個檔案23 /// </summary>24 /// <param name="sender"></param>25 /// <param name="e"></param>26 async private void btnMultiOpenFile_Click(object sender, RoutedEventArgs e)27 {28     FileOpenPicker filePicker = new FileOpenPicker();29     filePicker.CommitButtonText = "確定";30     filePicker.FileTypeFilter.Add(".txt");31     filePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;32     filePicker.ViewMode = PickerViewMode.Thumbnail;33     IReadOnlyList<StorageFile> storageFileList = await filePicker.PickMultipleFilesAsync();34     if (storageFileList != null)35     {36         foreach (StorageFile file in storageFileList)37         {38             //TODO:繼續後續檔案操作39         }40 41     }42 }

 

二.FileSavePicker(檔案儲存器)

 

屬性 描述

CommitButtonText

在 pickerUI 檔案中擷取或設定提交按鈕的標籤文本.

DefaultFileExtension

擷取或設定通過 fileSavePicker 儲存的檔案的預設副檔名.

FileTypeChoices

擷取使用者可選擇分配到檔案的有效檔案類型的集合.

SettingsIdentifier

擷取或設定與當前 FileSavePicker 執行個體關聯的設定標識符.

SuggestedFileName

擷取或設定儲存選擇器向使用者建議的檔案名稱.

SuggestedSaveFile

擷取或設定檔案選擇器向使用者建議的適用於儲存檔案的 storageFile.

SuggestedStartLocation

擷取或設定儲存選擇器向使用者建議的位置,作為要儲存檔案的位置.

 

方法 描述
PickSaveFileAsync 顯示檔案選擇器,以便使用者可以儲存檔案和設定要儲存的檔案的檔案名稱、擴充和位置.

 

 1  /// <summary> 2 /// 檔案儲存器 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 async private void btnSaveFile_Click(object sender, RoutedEventArgs e) 7 { 8     FileSavePicker filePicker = new FileSavePicker(); 9     filePicker.CommitButtonText = "儲存";10     filePicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;11     filePicker.DefaultFileExtension = ".txt";12     filePicker.FileTypeChoices.Add("txt", new List<string>() { ".txt" });13     filePicker.SuggestedFileName = DateTime.Now.ToString("yyyyMMddhhmmss").ToString();14     StorageFile storageFile = await filePicker.PickSaveFileAsync();15     await FileIO.WriteTextAsync(storageFile, "測試資料", UnicodeEncoding.Utf8);16 }

 

三.FolderPicker(檔案儲存器)

屬性 描述

CommitButtonText

擷取或設定資料夾選擇器的提交按鈕的標籤文本.

FileTypeFilter

擷取檔案夾選取器顯示的文件類型的集合.

SettingsIdentifier

擷取或設定與當前 FolderPicker 執行個體關聯的設定標識符.

SuggestedStartLocation

擷取或設定資料夾選擇器在其中尋找要呈現給使用者的檔案夾的初始位置.

ViewMode

擷取或設定檔案夾選取器用於顯示項目的視圖模式.

 

方法 描述
PickSingleFolderAsync 顯示 folderPicker 對象,以便使用者可以選擇檔案夾.

 

 1  /// <summary> 2 /// 檔案夾選取器 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 async private void btnSelectFolder_Click(object sender, RoutedEventArgs e) 7 { 8     FolderPicker folderPicker = new FolderPicker(); 9     folderPicker.CommitButtonText = "選擇";10     folderPicker.FileTypeFilter.Add(".txt");11     folderPicker.FileTypeFilter.Add(".jpg");12     folderPicker.FileTypeFilter.Add(".png");13     folderPicker.FileTypeFilter.Add(".doc");14     folderPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;15     folderPicker.ViewMode = PickerViewMode.Thumbnail;16     StorageFolder storageFolder = await folderPicker.PickSingleFolderAsync();17     //在選擇檔案夾下面添加檔案夾18     StorageFolder newFolder = await storageFolder.CreateFolderAsync("建立檔案夾", CreationCollisionOption.GenerateUniqueName);19 }

 

源碼下載

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.