zoukankan      html  css  js  c++  java
  • Windows Store App之文件选择器、文件保存器和文件夹选择器

      在应用程序开发过程中经常需要使用到文件打开和文件保存,在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 }

    源码下载

    代码之美
  • 相关阅读:
    网络流与线性规划24题 之 餐巾计划问题
    待刷题目分类(一)
    bzoj1787 [Ahoi2008]Meet 紧急集合
    Hoj2634 How to earn more?
    poj3281 Dining
    浅谈数论(三)水仙花数
    poj1637 Sightseeing tour
    动态规划的思考(1)
    网络流-最大流问题 ISAP 算法解释(转自Renfei Song's Blog)
    poj1273 Drainage Ditches
  • 原文地址:https://www.cnblogs.com/betterchaner/p/2918104.html
Copyright © 2011-2022 走看看