2016-10-08 8 views
1

UWAアプリケーションでファイルを読み書きする方法を理解しようとしています。私はFileStreamを開く必要があることを理解していますが、その方法を理解することはできません。C#UWA(Universal Windows App)でファイルを読み書きする方法

私はこのコードを開始しました:

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

は、赤いラインを仕事ないようです。私はこのように、FlushCloseに入れるように言われていますそのすべての終わりに

:私は暗礁に乗り上げる場所理由fs.Close()

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

... 

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

今は、これは、あります。機能のリストにもfsでさえありません。ハードコードをしようとすると、IDEに赤い線が表示されます。

UWAでこれを行う方法を理解できるように時間を割いてもらえますか?何らかの理由で、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 Google検索では1番ですので、あなたはいないと思います適切なキーワードを使用します。 "uwp read write file"を試してください。 このシリーズはhttps://www.tutorialspoint.com/windows10_development/windows10_development_file_management.htm私のために助けてください。私はあなたがファイルピッカーを追加し、必要なファイルを選択し、それを読む必要があると思います。 – thang2410199

+0

ちょっとねえ、あなたはすでにGoogleのカードを引っ張る? hehe - 私はあなたが正しいと思う、私はこの記事に出くわしていないし、間違ったキーワードを使用している必要があります。私は "私の人生を修正する"と "それを仕事にする=真実"と思います。最近はそれを切ってはいけません。 – Hudlommen

+0

私はMSDNが嫌いですが、その場所はプログラミングに多くの時間を費やさない人のために作られていません。 "Windows.Storage.StorageFolder storageFolder ="を作成するにはどうすればいいですか?ここで特定のフォルダを選択しますか? – Hudlommen

答えて

0

さて、(単純な)ソリューションはPROJECTFOLDER/binに/ x86の/デバッグ/ APPXでXMLファイルを配置し、リストにこの道を、データを書き込むことである:

​​
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

関連する問題