2014-11-14 143 views
3

我試圖將文件從我的Windows 8應用程序的安裝位置複製到本地存儲。我一直在研究,試圖做到這一點無濟於事。這是我到目前爲止所提出的,但我不確定我出錯的地方。將文件從應用程序安裝文件夾複製到本地存儲

private async void TransferToStorage() 
    { 


     try 
     { 
      // Get file from appx install folder 
      Windows.ApplicationModel.Package package = Windows.ApplicationModel.Package.Current; 
      Windows.Storage.StorageFolder installedLocation = package.InstalledLocation; 
      StorageFile temp1 = await installedLocation.GetFileAsync("track.xml"); 
      // Read the file 
      var lines = await FileIO.ReadLinesAsync(temp1); 

      //Create the file in local storage 
      StorageFile myStorageFile = await localFolder.CreateFileAsync("track_iso.xml", CreationCollisionOption.ReplaceExisting); 
      // Write to it 
      await FileIO.WriteLinesAsync(myStorageFile, lines); 

     } 
     catch (Exception) 
     { 

     } 

    } 

任何想法?

+0

只是好奇,但是需要這樣做的目的是什麼? – 2015-08-18 01:23:37

+0

@ A.R。例如我有一個XML配置文件模板,我想將其轉移到本地存儲,以便我可以修改它。 – ForeverLearning 2015-09-13 06:43:45

+0

哦,我忘了更新/添加評論。在問我的問題後,我很快就發現了我爲什麼想要。我有一個默認設置文件,包含在安裝中,然後複製到本地以保存新設置等。 – 2015-09-14 20:50:38

回答

6

自己解決。這裏是遇到這個問題/問題的其他人的方法:

private async void TransferToStorage() 
    { 
     // Has the file been copied already? 
     try 
     { 
      await ApplicationData.Current.LocalFolder.GetFileAsync("localfile.xml"); 
      // No exception means it exists 
      return; 
     } 
     catch (System.IO.FileNotFoundException) 
     { 
      // The file obviously doesn't exist 

     } 
     // Cant await inside catch, but this works anyway 
     StorageFile stopfile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///installfile.xml")); 
     await stopfile.CopyAsync(ApplicationData.Current.LocalFolder); 
    } 
2

沒有理由讀取所有行並將其寫入另一個文件。只需使用File.Copy即可。

相關問題