ispsh 发表于 2015-5-22 10:27:40

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 Convert()
  {      
  string text=string.Empty;
  using (IRandomAccessStream readStream = await file.OpenAsync(FileAccessMode.Read))
  {
          using (DataReader dataReader = newDataReader(readStream))
  {
              UInt64 size = readStream.Size;
  if (size
页: [1]
查看完整版本: Windows 8 Metro中文件的操作及访问(读写删除复制)