【万里征程——Windows App开发】文件&数据——文件选取器
2015-09-08 00:00
330 查看
使用文件选取器保存文件
就我个人而言,还是非常喜欢使用文件选取器的,因为能够用自己的代码来调用系统的各种弹框。在这个示例中,首先在XAML中添加一个Button和一个TextBlock,分别命名为btnSaveFile和tBlockSaveInfo。对于这个保存文件这个操作在后台的Click事件中就可以轻易完成了。
private async void btnSaveFile_Click(object sender, RoutedEventArgs e) { FileSavePicker saveFile = new FileSavePicker(); saveFile.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; // 显示在下拉列表的文件类型 saveFile.FileTypeChoices.Add("批处理文件", new List<string>() { ".bat" }); // 默认的文件名 saveFile.SuggestedFileName = "SaveFile"; StorageFile file = await saveFile.PickSaveFileAsync(); if(file!=null) { // 在用户完成更改并调用CompleteUpdatesAsync之前,阻止对文件的更新 CachedFileManager.DeferUpdates(file); string fileContent = "@echo off \n dir/s \n pause"; await FileIO.WriteTextAsync(file, fileContent); // 当完成更改时,其他应用程序才可以对该文件进行更改。 FileUpdateStatus updateStatus = await CachedFileManager.CompleteUpdatesAsync(file); if(updateStatus==FileUpdateStatus.Complete) { tBlockSaveInfo.Text = file.Name + " 已经保存好了。"; } else { tBlockSaveInfo.Text = file.Name + " 保存失败了。"; } } else { tBlockSaveInfo.Text = "保存操作被取消。"; } }
代码中的下拉列表的文件类型就是如下所示这个样子哟。
大部分的内容我都已经通过注释的方式添加到代码中了,至于fileContent的那段代码到底是什么意思,大家试试就知道了,我感觉蛮有意思的。3行代码列出硬盘上所有文件及文件夹
如果大家试过打开这个bat文件,有没有觉得有趣呢?
更厉害的是,我们刚才所写的代码可以在Windows Phone上不经修改而直接使用。我的Lumia 638已经刷上了Windows 10预览版,大家可以瞧瞧,全新的资源管理器。
使用文件选取器打开文件
和用文件选取器保存文件相类似,打开文件的逻辑都差不多。这个示例中同样在XAML中定义一个名为btnOpenFile的Button和一个名为tBlockOpenInfo的TextBlock。private async void btnOpenFile_Click(object sender, RoutedEventArgs e) { FileOpenPicker openFile = new FileOpenPicker(); openFile.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; openFile.ViewMode = PickerViewMode.List; openFile.FileTypeFilter.Add(".txt"); openFile.FileTypeFilter.Add(".docx"); openFile.FileTypeFilter.Add(".pptx"); // 选取单个文件 StorageFile file = await openFile.PickSingleFileAsync(); if (file != null) { tBlockOpenInfo.Text = "你所选择的文件是: " + file.Name; } else { tBlockOpenInfo.Text = "打开文件操作被取消。"; } // 选择多个文件 //IReadOnlyList<StorageFile> fileList = await openFile.PickMultipleFilesAsync(); //StringBuilder fileOpenInfo = new StringBuilder(); //if(fileList!=null) //{ // foreach( StorageFile f in fileList) // { // fileOpenInfo.Append(f.Name + "\n"); // } // tBlockOpenInfo.Text = "你所选择的文件是: "+"\n"+ fileOpenInfo.ToString(); //} //else //{ // tBlockOpenInfo.Text = "打开文件操作被取消。"; //} }
我已经将选取多个文件的代码也列了出来,只需要取消注释即可。像ViewMode和FileTypeFilter这种属性,看看名字应该都知道了吧。重在实践。
在手机上也是通用的,刚才我试过了,成功进入了资源管理器,不过没能打开文件。应该是因为预览版的原因,这个预览版连Office都被移除了,估计会在下一版中添加通用版的Office应用。
那么这篇博客就到此为止啦,文件和数据这一部分内容挺多的,我这里分成了许多小节。感谢大家的支持。
感谢您的访问,希望对您有所帮助。
欢迎大家关注或收藏、评论或点赞。
为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp
版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp
相关文章推荐
- android 代码实现控件之间的间距
- [Android]在代码里运行另一个程序的方法
- [原创]java局域网聊天系统
- 肯特·贝克:改变人生的代码整理魔法
- 网页恶意代码的预防
- 高手写的Tracer-Flash代码调试类代码下载
- Flex字符串比较 还有Flex字符串操作
- Windows 系统组策略应用全攻略(下)第1/3页
- CSS代码缩写技巧
- 非主流Q-zOne代码代码搜集第1/2页
- 如何进行系统配置
- CreateWeb.vbs 代码
- Lua中编译执行代码相关的函数详解
- ASP Cookies操作的详细介绍与实例代码
- perl数据库添加、删除、更新、查询操作例子
- C#列出当前系统所有正在运行程序的方法
- 总结的5个C#字符串操作方法分享
- SqlServer系统数据库的作用深入了解
- Powershell获取系统中所有可停止的服务
- C#操作XML文件实例汇总