2015-03-02 41 views
1

我正在創建一個跟蹤GPS數據(緯度,經度,高度)的應用程序。到目前爲止,我已經創建了一個列表框,每次創建另一組座標時都會得到一個額外的行。WP8.1:將數據導出到「可到達」.txt文件

我試着用這個函數寫入文件。

 private async Task WriteToFile() 
    { 
     string ResultString = string.Join("\n", locationData.ToArray()); 

     byte[] fileBytes = System.Text.Encoding.UTF8.GetBytes(ResultString); 

     StorageFolder local = Windows.Storage.ApplicationData.Current.LocalFolder; 
     var dataFolder = await local.CreateFolderAsync("DataFolder", CreationCollisionOption.OpenIfExists); 
     var file = await dataFolder.CreateFileAsync("DataFile.txt", CreationCollisionOption.ReplaceExisting); 

     using (var s = await file.OpenStreamForWriteAsync()) 
     { 
      s.Write(fileBytes, 0, fileBytes.Length); 
     } 
} 

我可以讀取此文件,但無法在「文件」應用程序中的任何位置查看此「DataFile.txt」。

我嘗試使用WP Power Tools,但它不能與8.1一起工作,我無法更新Visual Studio 2013以便使ISExplorer.exe正常工作,並且每次嘗試連接我的Lumia 620時,IsoStoreSpy都會一直崩潰。

但是,這一切看起來太過於緊密。有沒有其他方式獲得這個.txt文件,而不會搞亂IsolatedStorage?我覺得我錯過了這麼簡單的東西,我簡直不敢相信將輸出寫入.txt這樣基本的東西,以後可以用於個人電腦,不可用。

回答

2

您正在將文件存儲在應用的本地存儲(Windows.Storage.ApplicationData.Current.LocalFolder)中,該文件與隔離存儲相同。

該文件應用程序只能看到公共位置而不是應用程序特定的位置。

有幾種方法你的應用程序可以更全局共享此文件:

  1. 使用分成合約,讓用戶共享文件,無論他們想(OneNote中,電子郵件等)。請參閱Sharing and exchanging data
  2. 讓用戶選擇以FileSavePicker保存文件的位置。請參閱How to save files through file pickers
  3. 將文件保存在SD卡上。請參閱Access the SD card in Windows Phone apps
  4. 將文件保存到用戶的OneDrive。請參閱Guidelines for accessing OneDrive from an app
  5. 保存到RoamingFolder,以便Windows PC上的相同應用程序可以讀取文件,然後可以使用類似的方法(尤其是文件選取器)導出文件,但在桌面設備上導出。請參閱Quickstart: Roaming app data
+0

謝謝您的詳細解答。我試圖使用SD卡訪問數據 - 您提供的鏈接使我有機會從手機應用程序創建文件夾/文件。然而,這些文件夾/文件是不可見的,直到我斷開Windows手機,並通過USB連接(即使從Windows資源管理器,我看不到文件)。如何強制/模擬桌面應用程序的USB內容刷新(我通過MTP連接)。沒有一種方法來自動刷新PC端的內容,這個解決方案對我不起作用 - 我試圖用它來在PC應用程序和電話應用程序之間進行通信。 – user3141326 2016-02-14 20:23:40