Windows 8 Metro中文件的操作及访问(读写删除复制)
1.首先创建一个文件夹,在文件夹里创建文件
private async void CreateButton_Click(object sender, RoutedEventArgs e)
{
string name=FileName.Text; //创建文件的名称
folder =ApplicationData.Current.LocalFolder;
StorageFolder tempFolder = await folder.CreateFolderAsync("Config",CreationCollisionOption.OpenIfExists);
file =await tempFolder.CreateFileAsync(name,CreationCollisionOption.OpenIfExists);
}
2.在创建好的文件里,写入我们的数据,这里介绍三种写入文件的方式
private async void WriteButton_Click(object sender, RoutedEventArgs e)
{
string content = InputTextBox.Text.Trim();
ComboBoxItem item = WriteType.SelectedItem asComboBoxItem; //选择写入的方式
string type = item.Tag.ToString();
switch (type)
{
case"1": //以文本的方式写入文件
await FileIO.WriteTextAsync(file,content);
break;
case"2": //以bytes的方式写入文件
Encoding encoding = Encoding.UTF8;
byte[] bytes = encoding.GetBytes(content);
await FileIO.WriteBytesAsync(file,bytes);
break;
case"3": //以流的方式写入文件
IBuffer buffer = Convert(content); //将string转换成IBuffer类型的
await FileIO.WriteBufferAsync(file,buffer);
break;
}
}
3.读取刚才写入文件里的数据,这里也介绍三种读取文件的方式
private async void ReadButton_Click(object sender, RoutedEventArgs e)
{
ComboBoxItem item = ReadType.SelectedItem asComboBoxItem;
string type = item.Tag.ToString();
string content = string.Empty;
switch (type)
{
case"1": //以文本的方式读取文件
content =await FileIO.ReadTextAsync(file);
break;
case"2": //以流的方式读取文件
IBuffer buffer = await FileIO.ReadBufferAsync(file);
content = Convert(buffer);
break;
case"3":
content =await Convert();
break;
}
ShowTextBox.Text = content;
}
private IBuffer Convert(string text) //将string转换成IBuffer类型的
{
using (InMemoryRandomAccessStream stream = newInMemoryRandomAccessStream())
{
using (DataWriter dataWriter = newDataWriter())
{
dataWriter.WriteString(text);
return dataWriter.DetachBuffer();
}
}
}
private string Convert(IBuffer buffer) //将IBuffer转换成string类型的
{
string text = string.Empty;
using (DataReader dataReader=DataReader.FromBuffer(buffer))
{
text = dataReader.ReadString(buffer.Length);
}
return text;
}
private async Task<string> Convert()
{
string text=string.Empty;
using (IRandomAccessStream readStream = await file.OpenAsync(FileAccessMode.Read))
{
using (DataReader dataReader = newDataReader(readStream))
{
UInt64 size = readStream.Size;
if (size <= UInt32.MaxValue)
{
UInt32 numBytesLoaded = await dataReader.LoadAsync((UInt32)size);
text = dataReader.ReadString(numBytesLoaded);
}
}
}
return text;
}
4.读取文件的属性
private async void ReadPropertyButton_Click(object sender, RoutedEventArgs e)
{
ComboBoxItem item = Files.SelectedItem asComboBoxItem;
string name = item.Content.ToString();
StorageFolder tempFolder =await Windows.Storage.ApplicationData.Current.LocalFolder.GetFolderAsync("Config");
if (tempFolder != null)
{
file =await tempFolder.GetFileAsync(name);
if (file != null)
{
StringBuilder builder = newStringBuilder();
builder.AppendLine("文件名称:"+file.Name);
builder.AppendLine("文件类型:"+file.FileType);
BasicProperties basic = await file.GetBasicPropertiesAsync();
builder.AppendLine("文件大小:"+basic.Size+"bytes");
builder.AppendLine("上次修改时间:"+basic.DateModified);
builder.AppendLine("文件路径:"+file.Path);
List<string> list = newList<string>();
list.Add("System.DateAccessed");
list.Add("System.FileOwner");
IDictionary<string, object> extra = await file.Properties.RetrievePropertiesAsync(list);
var property = extra["System.DateAccessed"];
if (property != null)
{
builder.AppendLine("文件创建时间:"+property);
}
property = extra["System.FileOwner"];
if(property!=null)
{
builder.AppendLine("文件所有者:"+property);
}
DisplyProperty.Text = builder.ToString();
}
}
}
5.复制删除文件
private async void OKButton_Click(object sender, RoutedEventArgs e)
{
try
{
ComboBoxItem item=FilesList.SelectedItem asComboBoxItem;
string fileName = item.Content.ToString(); //获得选中的文件名称
int index=fileName.IndexOf('.');
string firstName = fileName.Substring(0,index);
string type = fileName.Substring(index);
StorageFolder tempFolder = await folder.GetFolderAsync("Config"); //文件在Config文件夹下放置着
file =await tempFolder.GetFileAsync(fileName);
if (file == null)
{
Msg.Text ="文件不存在!";
return;
}
if (CopyoButton.IsChecked.Value) //判断进行复制还是删除
{
StorageFile copy = await file.CopyAsync(tempFolder,firstName+"复制"+type,NameCollisionOption.ReplaceExisting);
Msg.Text ="复制成功!!!";
}
else
{
await file.DeleteAsync();
Msg.Text ="删除成功!!!";
}
}
catch
{
Msg.Text ="操作失败!";
}
}
Windows 8 Metro中文件的操作及访问(读写删除复制)相关推荐
- java中的文件_JAVA中文件的操作
在java中,对文件(例如图片)进行操作,包括上传.修改.删除 一,文件上传 1.文件传到哪里,不仅可以保存在数据库中,也可以上传到远程服务器,文件保存的是文件的路径 2.文件上传都需要做什么?写那些 ...
- python36_第36 p,就这几个方法,Python中文件的操作
大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第X篇文章,第二阶段的课程:Python基础知识:Python中文件的操作(下篇). 学习本课程,建议先看一遍:[计算机基础知识]课 ...
- 文件操作函数java_java中文件的操作
前言:java的读写操作是学java开发的必经之路,Java.io包中包括许多类提供许多有关文件的各个方面操作.下面就来总结下java的读写操作. 主要内容如下 1.字节流与字符流的区别 2.文件操作 ...
- C、C++和MFC中文件的操作
对文件读写的三种方法 1.C中 FILE *pFile=fopen("1.txt","w"); fwrite(" http://www.s ...
- Python中文件的操作
1.文件的基本操作 文件打开的格式: file = open(文件路径,读写模式) 文件路径:可以写相对路径,也可以写绝对路径 读写模式:r(读取) w(写入) a(追加) 文件打开后,必须关闭,否则 ...
- Metro中文件夹和文件的创建
本文主要介绍两种文件的创建,分别是使用: ApplicationData.Current.RoamingFolder和KnownFolders.DocumentsLibrary中提供的. 使用之前,需 ...
- java中文件的操作讲解
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://ww ...
- python中文件读取操作及注意事项
我们想要读一些文件,那么可以使用read()函数.readline()函数.或者readlines()函数. 其中read()函数可以一次性读取文件中所有的内容,也可以设置read(100),也就是一 ...
- (方案汇总)批处理中畸形文件夹和畸形文件的创建、访问、删除
[方案一]以点结尾的文件夹 复制内容到剪贴板 代码: rem 创建以点结尾的文件夹 md "C:\test" md "C:\test\batcher..\" 复 ...
最新文章
- spring上下文是什么意思_Java程序员只会CRUD连Spring事务传播机制都不懂?
- 550 万华人在美人才现状:7 诺奖、300 院士,320 八大常春藤高校终身正教授......
- php排序最新,PHP排序的几种方法,值得来看!
- create-react-app 2.0中使用antd(eject)
- python把中文转英文_Python 3.0_文本清洗之中文特殊符号转英文特殊符号及全角字符转半角字符...
- 给服务器端下拉asp:DropDownList 绑定改变事件,Ajax绑定下拉
- 识别它的飞鸽传书2012方法是光圈环
- docker深入1-配置非https的公司私有的registry仓库
- Exchange 2010 批量移动邮箱和增加移动请求并发数
- Typora + PicGo + Aliyun OSS + CSDN
- kopernio显示无效程序_daz 无法渲染/没有渲染/渲染不显示/渲染无效?
- 决策树ID3算法实现与讨论(完整代码与数据)
- STM32CUDE-STM32F407学习笔记1-点亮LED
- 【vulhub漏洞复现】ActiveMQ 反序列化漏洞 (CVE-2015-5254)-01
- PC设置切换Fn功能键
- c语言狗追兔子,[转载]狗追兔典型例题
- vue实战 —— 图书商城移动端项目
- Foxmail中配置O365邮箱和Hotmail邮箱
- 零基础入门 Vue3 | 附高清原图
- php怎么把多个pdf拼接成一个,如何把PDF文件拼接成一个?
热门文章
- php预编译mysql扩展_PHP-Mysqli扩展库的预编译
- dllregisterserver找不到入口点_厨房间漏水找不到漏水点,厨房上面漏水 | 影楼
- 软件开发生命周期中的设计阶段_什么是软件生命周期模型?软件测试和软件开发的关系分析!...
- php !$rs-gt;bof and !$rs-gt;eof,关于rs.bof rs.eof的一些解释,请大家帮我完善一下,谢谢...
- c语言srand函数怎么用_Excel统计指定内容出现次数,用函数怎么写?人人都能看懂的公式...
- 孙鑫MFC笔记之十二--网络编程
- android home 销毁 activity,android 触发home之后activity销毁问题
- 跨栏表格位置跑到了下一页_LaTeX双栏模板插入通栏公式(跨栏插图)
- 搜索引擎优化的用乐云seo_搜索引擎优化SEO
- 数学连乘和累加运算符号_2020中考数学 初中数学有理数计算(干货)