文件存储的类型
•本地应用文件:
•ApplicationData.Current.LocalFolder;
•漫游应用文件:
•ApplicationData.Current.RoamingFolder;
•临时应用文件:
•ApplicationData.Current.TemporaryFolder;
文件IO
1 <StackPanel> 2 <StackPanel Orientation="Horizontal"> 3 <Button 4 x:Name="btnSave" 5 Content="Save" 6 Click="btnSave_Click"/> 7 <Button 8 x:Name="btnGet" 9 Content="Get" 10 Click="btnGet_Click"/> 11 </StackPanel> 12 <TextBlock x:Name="txt" Height="500"/> 13 </StackPanel>
1 //拿到本地文件夹对象 2 StorageFolder folder = ApplicationData.Current.LocalFolder; 3 private async void btnSave_Click(object sender, RoutedEventArgs e) 4 { 5 //写入操作 6 var text = txt.Text; 7 //通过文件夹创建文件 8 var file = await folder.CreateFileAsync("temp.txt", CreationCollisionOption.ReplaceExisting); 9 //写入文本到文件中,仅适用于小文件写入 10 //await FileIO.AppendTextAsync(file, text);//小文件读写 11 12 //使用文件流的形式写入文件 13 using (var stream = await file.OpenStreamForWriteAsync()) 14 { 15 using (var writer = new StreamWriter(stream)) 16 { 17 await writer.WriteAsync(text); 18 } 19 } 20 } 21 private async void btnGet_Click(object sender, RoutedEventArgs e) 22 { 23 //打开一个现有文件,注意:没有文件则报异常 24 var file = await folder.GetFileAsync("temp.txt"); 25 //var text = await FileIO.ReadTextAsync(file); 26 //txt.Text = text; 27 28 //使用文件流去读取文件 29 using (var stream = await file.OpenStreamForReadAsync()) 30 { 31 using (var reader = new StreamReader(stream)) 32 { 33 txt.Text = await reader.ReadToEndAsync(); 34 } 35 } 36 }
拷贝和剪切
//获取本地文件夹对象
var localFolder = ApplicationData.Current.LocalFolder;
//根据文件名获取文件对象
var file = await localFolder.GetFileAsync("temp.txt");
//拷贝目标文件夹
var myFolder = await localFolder.CreateFolderAsync("MyFolder", CreationCollisionOption.OpenIfExists);
//拷贝到制定文件夹
var newFile = await file.CopyAsync(myFolder, "new.txt",NameCollisionOption.ReplaceExisting);
//移动到新路径
await file.MoveAsync(myFolder);
删除和重命名
//获取本地文件夹对象
var localFolder = ApplicationData.Current.LocalFolder;
//根据文件名获取文件对象
var file = await localFolder.GetFileAsync("temp.txt");
//对文件进行重命名操作
await file.RenameAsync("temp2.txt");
//删除文件
await file.DeleteAsync();