2016-10-08 12 views
1

我想弄清楚如何在UWA應用程序中讀取和寫入文件。我知道我需要打開一個FileStreamm,但我無法弄清楚如何做到這一點。如何讀寫C#中的文件UWA(通用Windows應用程序)

我開始使用此代碼:

FileStream fs = new FileStream(@"C:\XML\test.txt", FileMode.Create, FileAccess.Write); 

似乎工作,沒有紅線。

在這一切結束,我告訴擺在FlushClose,像這樣:

FileStream fs = new FileStream(@"C:\XML\test.txt", FileMode.Create, 

... 

fs.Flush(); 
fs.Close(); 

現在,這是我遇到了障礙,因爲fs.Close();甚至不在fs上的函數列表中。如果我嘗試對它進行硬編碼,我只是在我的IDE中出現紅線。

有人可以請花時間幫助我瞭解如何與西澳大學做到這一點?出於某種原因,Windows 10應用程序似乎有不同的做法,而且我非常難以找到任何能夠讓我知道如何正確實施的方法。所有教程和SOF論壇輸入都是關於舊版本(非UWA)。

當我在控制檯應用程序中執行此操作時,它都按預期工作。

我的最終目標是能夠讀取和寫入到一個XML文件中這種時尚:

XDocument doc = XDocument.Load(input); 
XElement person = doc.Element("Person"); 
person.Add(new XElement("Employee", 
      new XElement("Name", "David"), 
      new XElement("Dept", "Chef"))); 
doc.Save(output); 

我走這條路,因爲回答我剛纔的問題告訴我使用一個FileStream,但我根本無法在UWA中完成這項工作。

+0

難道你試試官方文檔:https://msdn.microsoft.com/en-us/windows/uwp/files/quickstart-reading-and-writing-files 它是谷歌搜索的第一名,所以我不認爲你是使用正確的關鍵字。嘗試「uwp讀寫文件」。 本系列https://www.tutorialspoint.com/windows10_development/windows10_development_file_management.htm幫助我很多。我認爲你需要添加一個文件選擇器,選擇需要的文件,並閱讀它。 – thang2410199

+0

嘿嘿嘿,你已經拉過谷歌卡了?呵呵 - 我認爲你是對的,我沒有看到這篇文章,並且必須使用錯誤的關鍵字。我想「修復我的生活」和「讓它工作=真實」這些天不要削減它。 – Hudlommen

+0

雖然我討厭MSDN,但那個地方並不適合那些不花費大量時間進行編程的人。我如何使「Windows.Storage.StorageFolder storageFolder =」工作,我選擇一個特定的民間機? – Hudlommen

回答

0

還行,(簡單)的解決方案是將XML文件在PROJECTFOLDER /斌/ 86 /調試/ APPX,然後將數據寫入到一個列表中這樣說:

​​
1

您不能從通用Windows應用程序訪問任何文件。訪問文件系統受到限制。詳細請參照the documentation

爲了進一步幫助您,我們需要更多地瞭解您的應用程序。什麼樣的文件,你想訪問的原因是什麼?


如何讀取XML文件,修改它,並將其存儲在一個通用的應用程序實例。您需要一個帶有以下Click處理程序和一個名爲「TextBoxLog」的TextBox的按鈕。

private async void ButtonDemo_Click(object sender, RoutedEventArgs e) 
{ 
    // Get our local storage folder 
    var localFolder = ApplicationData.Current.LocalFolder; 

    XmlDocument xmlDocument; 

    // Try to get file 
    var file = await localFolder.TryGetItemAsync("MyData.xml") as IStorageFile; 

    if(file != null) 
    { 
      // File exists -> Load into XML document 
      xmlDocument = await XmlDocument.LoadFromFileAsync(file); 
    } 
    else 
    { 
      // File does not exist, create new document in memory 
      xmlDocument = new XmlDocument(); 
      xmlDocument.LoadXml(@"<?xml version=""1.0"" encoding=""UTF-8""?>" + Environment.NewLine + "<root></root>"); 
    } 

    // Now show the current contents 
    TextBoxLog.Text = ""; 

    var lEntries = xmlDocument.GetElementsByTagName("Entry"); 
    foreach(var lEntry in lEntries) 
    { 
      TextBoxLog.Text += lEntry.InnerText + Environment.NewLine; 
    } 

    // Now add a new entry 
    var node = xmlDocument.CreateElement("Entry"); 
    node.InnerText = DateTime.Now.ToString(); 
    xmlDocument.DocumentElement.AppendChild(node); 

    // If the file does not exist yet, create it 
    if(file == null) 
    { 
      file = await localFolder.CreateFileAsync("MyData.xml"); 
    } 

    // Now save the document 
    await xmlDocument.SaveToFileAsync(file); 

} 
+0

好吧,我真正想要的是能夠讀取和寫入一個XML文件,所以我可以使列表,在應用程序中使用。 – Hudlommen

+0

但我不知道我是否可以創建一個應用程序列表來保存數據與使用xml之間的數據? – Hudlommen

+0

我想爲什麼我想要一個XML文件,所以我可以添加數據到我的應用程序,實際應用程序之外。所以我可以通過記事本++訪問xml,添加下次運行應用程序時可用的數據。 – Hudlommen

相關問題