2017-05-19 1 views
0

ich versuche, eine Datei Inhalt meiner RichEditBox mit dieser Methode hinzufügen:UWP Liest RichEditBox nur .rtf-Dateien?

myRichEditBox.Document.LoadFromStream(Windows.UI.Text.TextSetOptions.None, streamFile); 

Und das ist, wie ich meine Stream Variable füllen:

public static async void openFileAsync(string pathFolder, string file) 
    { 
     Windows.Storage.StorageFolder folder = await Windows.Storage.StorageFolder.GetFolderFromPathAsync(pathFolder); 
     System.Diagnostics.Debug.WriteLine("folder : " + folder.Path); 

     Windows.Storage.StorageFile fileOpen = await folder.GetFileAsync(file); 
     System.Diagnostics.Debug.WriteLine("file : " + fileOpen.Path); 

     Windows.Storage.Streams.IRandomAccessStream stream = await fileOpen.OpenAsync(Windows.Storage.FileAccessMode.Read); 

     streamFile = stream; 
    } 

Ich habe keine Ausnahme, die aber den richBoxEdit Text steigt ist nicht lesbar (Zeichen sind nicht lesbar). Ich möchte txt-Dateien lesen.

Vielen Dank im Voraus für Ihre Hilfe.

+0

Welcher Dateityp und welches Format ist die Datei, die Sie zu lesen versuchen? –

+0

Oh Entschuldigung, ich habe vergessen zu erwähnen, dass ... Ich versuche nur eine .txt-Datei zu lesen –

Antwort

1

Wenn Sie den Inhalt der Datei mit Stream lesen möchten, können Sie die Methode Below verwenden. Dadurch wird der Inhalt der Datei als Text zurückgegeben.

internal async Task<string> UsingStream(StorageFile sampleFile) 
{ 
    IRandomAccessStream stream = await sampleFile.OpenAsync(FileAccessMode.Read); 
    ulong size = stream.Size; 
    string text = string.Empty; 
    using (var inputStream = stream.GetInputStreamAt(0)) 
    { 
     using (var dataReader = new DataReader(inputStream)) 
     { 
      uint numBytesLoaded = await dataReader.LoadAsync((uint)size); 
      text = dataReader.ReadString(numBytesLoaded); 
     } 
    } 
    return text; 
} 

die Official Microsoft Documentation Getreu Siehe

jedoch bei Temperaturen unter, wenn Sie den Text statt Stream direkt geladen werden soll.

string fileText = await FileIO.ReadTextAsync(sampleFile); 

Und dann die Daten an RichEditBox wie unten zuordnen.

MyRichEditBox.Document.SetText(Windows.UI.Text.TextSetOptions.None, await UsingStream(sampleFile)); 
Verwandte Themen