2015-03-02 42 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