Windows phone開發之檔案夾與檔案操作系列(一)檔案夾與檔案操作

來源:互聯網
上載者:User

標籤:

Windows phone7中檔案的儲存模式是獨立的,即隔離儲存區 (Isolated Storage)空間(IsolatedStorage)。對檔案夾與檔案操作,需要藉助IsolatedStorageFile類。 IsolatedStorageFile提供了對隔離儲存區 (Isolated Storage)的空間擷取,檔案夾的刪除、移動,檔案的建立、刪除等IO操作。 在Windows phone7中對檔案的操作,都需要引入命名空間System.IO.IsolatedStorage和System.IO。

在System.IO.IsolatedStorage 命名空間下有以下幾種類: (詳細瞭解:https://msdn.microsoft.com/zh-cn/library/system.io.isolatedstorage%28VS.95%29.aspx)

   1.IsolatedStorageFile 類 表示包含檔案和檔案夾的隔離儲存區 (Isolated Storage)區,用於操控隔離儲存區 (Isolated Storage)空間檔案夾和檔案。

  2.IsolatedStorageFileStream 類 表示公開隔離儲存區 (Isolated Storage)中的檔案,用於讀寫操控隔離儲存區 (Isolated Storage)空間裡的檔案流。

  3.IsolatedStorageSettings 類 提供一個在隔離儲存區 (Isolated Storage)中儲存鍵/值對的 Dictionary<TKey, TValue>,用於儲存應用程式的配置資訊的Dictionary。

  4.IsolatedStorageException 類 用於檢測隔離儲存區 (Isolated Storage)中的操作失敗時所引發的異常。

在Windows phone7中對檔案的操作一般有以下幾個步驟:

  1.首先引入命名空間System.IO.IsolatedStorage和System.IO;

  2.擷取應用程式的隔離儲存區 (Isolated Storage)空間,調用靜態方法GetUserStoreForApplication()返回IsolatedStorageFile對象;

  3.利用擷取的獨立空間對象提供的方法進行IO操作(如果涉及檔案流操作,應在檔案流操作結束後將檔案流關閉);

  4.對檔案操作出現異常進行捕獲。

檔案夾與檔案操作 對檔案夾與檔案的操作基於IsolatedStorageFile 類對象,常用方法有:

  CopyFile(String, String):將現有檔案複製到新檔案。

  CopyFile(String, String, Boolean):將現有檔案複製到新檔案,還可以覆蓋現有檔案。

  CreateDirectory:在隔離儲存區 (Isolated Storage)範圍中建立目錄。

  CreateFile:在隔離儲存區 (Isolated Storage)區中建立檔案。

  DeleteDirectory:刪除隔離儲存區 (Isolated Storage)範圍中的目錄。

  DeleteFile:刪除隔離儲存區 (Isolated Storage)區中的檔案。

  DirectoryExists:檢查指定的路徑是否指的是隔離儲存區 (Isolated Storage)區中的現有目錄。

  FileExists:檢查指定的路徑是否指的是隔離儲存區 (Isolated Storage)區中的現有檔案。

  MoveDirectory:將指定的目錄及其內容移到新位置。

  MoveFile:將指定檔案移到新位置,還可以允許您指定新檔案名稱。

  OpenFile(String, FileMode): 在指定的模式中開啟檔案。

  OpenFile(String, FileMode, FileAccess):以指定的檔案存取權限在指定的模式下開啟檔案。

  其中在進行寫入檔案操作時,操作稍微複雜一些。 檔案的寫入是以流的方式寫入的,進行寫入操作時首先用IsolatedStorage提供的IsolatedStorageFileStream 檔案流操作類開啟該檔案; 然後再使用StreamWriter類將開啟的檔案對對象進行資料寫入;最後關閉檔案流。

在檔案的讀取操作和檔案的寫入步驟基本相同,使用StreamReader類進行讀取,最後也是需要關閉檔案流。

下面通過例子瞭解檔案夾與檔案操作實現過程

檔案夾操作:

   MainPage.xaml.cs主要代碼

 1 //建立檔案夾 2 void CreateButton_Click(object sender, RoutedEventArgs e) 3 { 4   using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication()) 5   { 6     file.CreateDirectory(dir); 7    } 8  } 9 10 11  //查檢檔案夾12 void ExistsButton_Click(object sender, RoutedEventArgs e)13 {14    using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())15     {16       if (file.DirectoryExists(dir))17         {18            MessageBox.Show("檔案夾存在!");19          }20         else21          {22             MessageBox.Show("檔案夾不存在!");23           }24  }25 26 27 //刪除檔案夾28 void DeleteButton_Click(object sender, RoutedEventArgs e)29 {30    using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())31    {32       file.DeleteDirectory(dir);33     }34  }
View Code

檔案操作:
  MainPage.xaml.cs

 1 //建立檔案 2 void NewButton_Click(object sender, RoutedEventArgs e) 3 {           4     using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication()) 5      { 6       IsolatedStorageFileStream FileStream= file.CreateFile(textBox.Text + ".txt"); 7        //關閉檔案流 8        FileStream.Close();      9       }10 }11 //檢查檔案12 void CheckButton_Click(object sender, RoutedEventArgs e)13 {14    using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())15    {16      if (file.FileExists(textBox.Text + ".txt"))17       {18         MessageBox.Show("檔案已經存在");19       }20       else21       {22          MessageBox.Show("檔案不存在");23        }24 25     }26  }27 28  //寫入檔案29 void WriteButton_Click(object sender, RoutedEventArgs e)30 {31   try32             {33                 using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())34                 {35                     //開啟檔案36                     using (IsolatedStorageFileStream FileStream = file.OpenFile(FileNameTextBox.Text + ".txt", FileMode.Open, FileAccess.Write))37                     {38                         //執行個體化StreamWriter類39                         StreamWriter streamWriter = new StreamWriter(FileStream);40                         //使用WriteLine方法使用41                         streamWriter.WriteLine(ContentTextBox.Text);42                         //寫入完成後需要關閉43                         streamWriter.Close();44                     }45                 }46 47             }48             catch (IsolatedStorageException ex)49             {50                 MessageBox.Show(ex.ToString());51 52             }53         }54 55 56 //讀取檔案57 void ReadFilePage_Loaded(object sender, RoutedEventArgs e)58 {59    using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())60    {61     if (file.FileExists(NavigationContext.QueryString["file"].ToString()))62      {63        //開啟檔案64        using (IsolatedStorageFileStream FileStream = file.OpenFile(NavigationContext.QueryString["file"].ToString(), FileMode.Open, FileAccess.ReadWrite))65         {                  66             StreamReader streamReader = new StreamReader(FileStream);     //執行個體化streamReader類       67             this.ContentTextBlock.Text = streamReader.ReadLine();  //使用ReadToEnd()方法讀取內容68             streamReader.Close();//關閉檔案流69          }70       }71      else72      {73       MessageBox.Show(NavigationContext.QueryString["file"].ToString() + "檔案不存在");74       }75     }76 }
View Code


 

Windows phone開發之檔案夾與檔案操作系列(一)檔案夾與檔案操作

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.