Metro Style App开发快速入门 之文件选择总结

简介:

1、选择单个文件,FileTypeFilter.Add是添加能访问的文件类型。

private  async void  filePickerBtn_Click( object  sender, RoutedEventArgs e)
{
     FileOpenPicker fileOpenPicker = new  FileOpenPicker();
     fileOpenPicker.FileTypeFilter.Add( ".jpg" );
     fileOpenPicker.FileTypeFilter.Add( ".jpeg" );
     fileOpenPicker.FileTypeFilter.Add( ".png" );
 
     fileOpenPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
     StorageFile file = await fileOpenPicker.PickSingleFileAsync();
     if  (file != null )
     {
         displayTextBlock.Text = file.Name;
     }
}

 2、选择多个文件,并且是任意文件类型

private  async void  filePickerBtn_Click( object  sender, RoutedEventArgs e)
{
     FileOpenPicker fileOpenPicker = new  FileOpenPicker();
     fileOpenPicker.FileTypeFilter.Add( "*" );
     fileOpenPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
     IReadOnlyList<StorageFile> files = await fileOpenPicker.PickMultipleFilesAsync();
     if  (files.Count > 0)
     {
         foreach  (StorageFile file in  files)
         {
             displayTextBlock.Text += file.Name + "\n" ;
         }
     }
}

 

 3、 选择文件夹

private  async void  folderPickerBtn_Click( object  sender, RoutedEventArgs e)
{
     if  (EnsureUnsnapped())
     {
         FolderPicker folderPicker = new  FolderPicker();
         folderPicker.SuggestedStartLocation = PickerLocationId.Desktop;
         folderPicker.FileTypeFilter.Add( "*" );
         StorageFolder storageFolder = await folderPicker.PickSingleFolderAsync();
         if  ( null  != storageFolder)
         {
             displayTextBlock.Text = storageFolder.Name;
         }
     }
}

 FilePicker APIs是不能在snapped状态下使用

bool  EnsureUnsnapped()
{
     //FilePicker APIs不能再snapped状态下使用。
     return  ((ApplicationView.Value != ApplicationViewState.Snapped) || ApplicationView.TryUnsnap());
}

 

4、保存文件

private  async void  SaveFileBtn_Click( object  sender, RoutedEventArgs e)
{
     if  (EnsureUnsnapped())
     {
         FileSavePicker savePicker = new  FileSavePicker();
         savePicker.SuggestedStartLocation = PickerLocationId.Desktop;
         savePicker.FileTypeChoices.Add( "Text" , new  List< string >() { ".txt"  });
         savePicker.FileTypeChoices.Add( "Word Docment" , new  List< string >() { ".docx" , ".doc"  });
         savePicker.DefaultFileExtension = ".txt" ;
         savePicker.SuggestedFileName = "New Document" ;
         StorageFile storageFile = await savePicker.PickSaveFileAsync();
         if  ( null  != storageFile)
         {
             displayTextBlock.Text = storageFile.Name;
         }
     }
}

 选择保存的文件保存自己要求的文件。自定义文件类型和文件名。


本文转自Work Hard Work Smart博客园博客,原文链接:http://www.cnblogs.com/linlf03/archive/2012/03/27/2400416.html,如需转载请自行联系原作者

目录
打赏
0
0
0
0
51
分享
相关文章
旅游社用什么工具收报名 + 资料?不开发 App 也能自动收集信息
本文探讨了旅游行业中报名信息收集的常见痛点及解决方案,重点介绍了二维码表单工具在提升信息收集效率、简化操作流程方面的优势。通过对比多种工具,分析其适用场景与实际应用逻辑,为一线旅游从业者提供高效、低成本的执行参考。
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。
使用DevEcoStudio 开发、编译鸿蒙 NEXT_APP 以及使用中文插件
# 使用DevEcoStudio 开发、编译鸿蒙 NEXT_APP 以及使用中文插件 #鸿蒙开发工具 #DevEco Studio
158 1
【一步步开发AI运动APP】十、微调优化内置运动分析器,灵活适配不同的应用场景
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用`ISportOptimizer`对内置运动分析器进行微调优化。相比小程序,APP框架(如uni-app)因技术差异,无法直接修改运动分析器参数,因此提供了统一的优化机制。开发者可通过`ISportOptimizer`获取和更新检测规则、动作样本等,灵活适应不同场景需求,如全民运动赛事的宽松模式或学生体测的严格模式。文中还提供了示例代码,展示如何对具体运动项目(如仰卧起坐)进行优化。需要注意的是,微调优化适用于标准动作的小范围调整,若动作变化过大(如花式跳绳),可期待后续自定义扩展功能。
HarmonyOS NEXT仓颉开发语言实战案例:健身App
本期分享一个健身App首页的布局实现,顶部采用Stack容器实现重叠背景与偏移效果,列表部分使用List结合Scroll实现可滚动内容。代码结构清晰,适合学习HarmonyOS布局技巧。
HarmonyOS NEXT仓颉开发语言实战案例:银行App
仓颉语言银行App项目分享,页面布局采用List容器,实现沉浸式体验与模块化设计。顶部资产模块结合Stack与Row布局,背景图与内容分离,代码清晰易懂;功能按钮部分通过负边距实现上移效果,圆角仅保留顶部;热门推荐使用header组件,结构更规范。整体代码风格与ArkTS相似,但细节更灵活,适合金融类应用开发。
【一步步开发AI运动APP】七、自定义姿态动作识别检测——之规则配置检测
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用自定义姿态识别检测技术开发高性能的AI运动应用。核心内容包括:1) 自定义姿态识别检测,满足人像入镜、动作开始/停止等需求;2) Pose-Calc引擎详解,支持角度匹配、逻辑运算等多种人体分析规则;3) 姿态检测规则编写与执行方法;4) 完整示例展示左右手平举姿态检测。通过这些技术,开发者可轻松实现定制化运动分析功能。
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
151 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
不用开发APP,也能实现设备巡检自动提醒和记录归档
设备巡检新方案!告别纸质表格,用二维码轻松搞定自动提醒和记录归档。某工厂分享如何通过草料二维码实现一物一码、扫码填写巡检信息,自动生成数据归档,还能设置定期提醒,确保巡检任务按时完成。无需额外开发 App,低成本高效管理,为设备巡检提供简单又实用的解决方案。
【Function App】本地通过VS Code调试Function时候遇见无法加载文件错误Microsoft.Extensions.Diagnostics.Abstractions
在使用 VS Code 调试 Azure Functions 时,执行 `func host start` 可能因版本冲突报错。错误信息显示 Rpc Initialization Service 启动失败,可能是由于缺少文件或组件导致。解决方法包括:1) 使用 npm 卸载并重新安装 Azure Functions Core Tools;2) 若问题未解决,重新下载安装包(如 func-cli-x64.msi)修复旧版本工具;3) 退出并重启 VS Code,重新加载项目即可恢复正常运行。参考资料链接提供了更多背景信息。
104 1

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问