文章目錄
- 1.使用 IsolatedStorageFile類隱藏檔和檔案夾
在我們前面的筆記中瞭解如何通過使用IsolatedStorageSettings類來儲存應用程式設定,也知道隔離儲存區 (Isolated Storage)還可以通過使用使用 IsolatedStorageFile類隱藏檔和檔案夾。在這篇筆記中,讓我們一起來瞭解並學會使用IsolatedStorageFile類來隱藏檔和檔案夾。
1.使用 IsolatedStorageFile類隱藏檔和檔案夾
由於涉及到了I/O操作,我們首先需要在項目中引用到System.IO和IsolatedStorageFile類所在的System.IO.IsolatedStorage這兩個命名空間。下面我們通過一個樣本來瞭解如何使用IsolatedStorageFile類來隱藏檔和檔案夾。
在樣本中我們在文字框中輸入檔案,點擊儲存,然後再把儲存的文本讀取並顯示出來。首先給出我們的前台MainPage.xaml的代碼:
1 <!--ContentPanel - 在此處放置其他內容-->
2 <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
3 <StackPanel>
4 <Grid Margin="0 15" Height="300">
5 <TextBox Width="450" Height="72" VerticalAlignment="Top" Name="txtWrite"/>
6 <Button Width="200" Height="72" Content="儲存資料" VerticalAlignment="Center" Name="btnSave" Click="btnSave_Click"/>
7 </Grid>
8 <Grid Height="350" Margin="0 15">
9 <TextBlock Width="200" Height="72" VerticalAlignment="Top" HorizontalAlignment="Center" FontSize="32" Name="txtRead"/>
10 <Button Width="200" Height="72" Content="讀取資料" VerticalAlignment="Center" Name="btnRead" Click="btnRead_Click"/>
11 </Grid>
12 </StackPanel>
13 </Grid>
然後是MainPage.xaml.cs幕後處理程式:
1 /// <summary>
2 /// 將文字框中的文本寫入到檔案中
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 private void btnSave_Click(object sender, RoutedEventArgs e)
7 {
8 // 擷取應用程式的虛擬儲存
9 IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
10
11 // 在隔離儲存區 (Isolated Storage)中建立一個新的檔案夾
12 myStore.CreateDirectory("TestFolder");
13
14 // 指定檔案路徑和選項
15 using (var isoFileStream = new IsolatedStorageFileStream(@"TestFolder\myTestFile.txt", FileMode.OpenOrCreate, myStore))
16 {
17 //寫入資料
18 using (var isoFileWriter = new StreamWriter(isoFileStream))
19 {
20 isoFileWriter.WriteLine(txtWrite.Text);
21 }
22 }
23 }
24
25 /// <summary>
26 /// 讀取寫入的檔案
27 /// </summary>
28 /// <param name="sender"></param>
29 /// <param name="e"></param>
30 private void btnRead_Click(object sender, RoutedEventArgs e)
31 {
32 // 擷取應用程式的虛擬儲存
33 IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
34 try
35 {
36 // 讀取指定目錄的指定檔案
37 using (var isoFileStream = new IsolatedStorageFileStream(@"TestFolder\myTestFile.txt", FileMode.Open, myStore))
38 {
39 // 讀取資料
40 using (var isoFileReader = new StreamReader(isoFileStream))
41 {
42 txtRead.Text = isoFileReader.ReadLine();
43 }
44 }
45 }
46 catch
47 {
48 //異常處理
49 txtRead.Text = "請預先建立檔案和檔案夾";
50 }
51 }
編譯運行程式:
可以看到我們已經成功建立一個檔案夾和txt檔案,並且在txt檔案中寫入了資料。但是我們真的在手機儲存開中建立了一個這樣的檔案嗎?微軟在Windows Phone中的儲存控制是很嚴格的,我們並不能夠直接查看我們在隔離儲存區 (Isolated Storage)中建立的檔案,不過我們可以通過一個使用Windows Phone SDK內建的:隔離儲存區 (Isolated Storage)資源管理員可列出、複製和替換隔離儲存區 (Isolated Storage)中的檔案和目錄,下面我們就將我們的建立的檔案複製到我們的電腦中。
2.使用隔離儲存區 (Isolated Storage)資源管理員(ISETool.exe)將隔離儲存區 (Isolated Storage)中建立的檔案複製到電腦中
根據作業系統的不同,隔離儲存區 (Isolated Storage)資源管理員的安裝位置在:
首先我們開啟模擬器,確保我們的前面的應用程式已經部署在模擬器中,並且已經在隔離儲存區 (Isolated Storage)中建立了檔案,之後,開啟命令列,進入到隔離儲存區 (Isolated Storage)資源管理員的安裝目錄中,例如在我的電腦中是:
接著擷取應用程式的 Product GUID,因為在下面的命令中我們需要使用到它,在Properties檔案夾下的WPAppManifest.xml 檔案的 App 元素的 ProductID 屬性的值,選中複製。然後在命名行中接著輸入:
ISETool.exe ts xd 應用程式的ProductId屬性值 "電腦上的路徑"
這我這裡是這樣:
然後斷行符號,命令成功後如下所示:
開啟我們複製到的目錄我們可以看到已經成功的把建立的檔案從Windows Phone中複製到本地:
猛擊下載:樣本源碼
參考資料:
http://msdn.microsoft.com/zh-cn/library/ff626519(v=vs.92).aspx(重要)
http://msdn.microsoft.com/zh-cn/library/hh286408(v=vs.92).aspx
http://msdn.microsoft.com/zh-cn/library/ff769544(v=vs.92).aspx(重要)
作者:晴天豬
出處:http://www.cnblogs.com/IPrograming
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。
Windows Phone開發人員交流群:79339880,歡迎大家來一起討論交流,共同學習進步。