2016-04-25 8 views
0

Ich wollte vor kurzem mehr über fileOpenPickers erfahren und habe beschlossen, ein Projekt zu machen. Ich habe einen FilOpenPicker gemacht. Wenn ich eine Textdatei aus dem FileOpenPicker auswähle, wollte ich sie im Textblock anzeigen. Aber ich weiß nicht wirklich, wie ich das machen soll. Weiter habe ich eine Speichern-Taste und eine Öffnen-Taste. Wenn ich auf Speichern klicke, muss ich den Text vom OpenFilePicker irgendwo auf meinem Computer speichern. Ich habe einen Code geschrieben, aber es ist überhaupt nicht gut.Wie kann ich Text aus einer Textdatei in einem Textblock anzeigen? Xaml, BlankApp, Window8

Hier ist mein Code:

private async void btnOpen_Click(object sender, RoutedEventArgs e) 
{ 
    FileOpenPicker picker = new FileOpenPicker(); 
    picker.FileTypeFilter.Add(".log"); 
    StorageFile result = await picker.PickSingleFileAsync(); 

    if (result != null) 
    { 
     try 
     { 
      await FileIO.WriteTextAsync(result, txtInhoud.Text); 
      txtInhoud.Text = result.ToString(); 
     } 
     catch (Exception) 
     { 
      txtInhoud.Text = result.ToString(); 
     } 
    } 

} 

private async void btnSave_Click(object sender, RoutedEventArgs e) 
{ 
    StorageFolder folder = ApplicationData.Current.RoamingFolder; 
    StorageFile file = await folder.CreateFileAsync("MyFolder\\MyFile.txt", 
    CreationCollisionOption.ReplaceExisting); 
    if (file != null) 
    { 
     await FileIO.WriteTextAsync(file, "data"); 
    } 
} 

Ich hoffe, dass Sie mir helfen können! Es tut mir leid für mein schlechtes Englisch.

+0

Können Sie genauer erklären, welcher Teil dieses Codes in Ordnung ist, und welcher Teil nicht und was es tut, ist das falsch? –

+0

Ja werde ich. Der FileOpenPicker ist gut. Es öffnet sich und ich kann die Textdatei auf meinem PC abholen. Was nicht funktioniert, ist die Art, wie ich die Daten aus der Datei in den Textblock schreiben und die Daten auf meinem PC speichern möchte, der sich nach dem Ausfüllen in der Textbox befindet. Ich hoffe du verstehst was ich meine. Und ich hoffe, du kannst mich heilen! – Xaml

Antwort

0

Von der Art, wie Sie die Dateiauswahl öffnen, nehme ich an, dass Sie auf Windows Phone 8.0 Silverlight abzielen?

In diesem Fall wird die FileIO.WriteTextAsync Methode nicht funktionieren, da es für die WinRT-Plattform spezifisch ist. Verwenden Sie stattdessen die Methode StorageFile.OpenAsync und übergeben Sie entweder Read oder ReadWrite als Zugriffsmodus. Beide Versionen geben einen Stream zurück, in den Sie schreiben/lesen können.

Zum Beispiel kann der Code zum Speichern der Textbox‘Inhalt wie folgt aussehen könnte:

var stream = await file.OpenAsync(FileAccessMode.ReadWrite); 
using (var writer = new DataWriter(stream.GetOutputStreamAt(0))) 
{ 
    writer.WriteString(txtInhoud.Text); 
    await writer.StoreAsync(); 
    await writer.FlushAsync(); 
} 

Weitere Informationen (und ein Beispiel für das Lesen von Dateien), siehe this blog post (Abschnitte Datei schreiben und lesen Datei)!