2017-06-14 3 views
0

私はStreamReaderクラスを利用しています。 StreamReader Classのマニュアルページには、 がバージョン情報ヘッダー「Universal Windows Platform - Available since 8」でUniversal Windows Platform(UWP)をサポートしていることが記載されています。StreamReader(String)をUWP APIと互換性を持たせるように変換しますか?

StreamReader(Stream)コンストラクタは、コンストラクタをさらに調べると、UWPアプリケーションをサポートしますが、StreamReader(String)コンストラクタはそれらをサポートしていません。私は現在読み込まれるために、完全なファイルパスとのStreamReader(String)コンストラクタを使用してい

using (StreamReader sr = new StreamReader(path)) 
{ 
    ... 
} 

私はStreamReaderを(文字列)のための私のコードを変換する方法を学習しようとしていますStreamReader(Stream)。

+0

達成したいことが[this](https://stackoverflow.com/questions/1879395/how-to-generate-a-stream-from-a-string)ですか? – Kilazur

+0

文字列はファイル名か文字列ですか?文字列を読み込むには、StringReader(string)を使用します。 StreamReaderの文字列はファイル名です。 – jdweng

+0

@キラズール、ある意味ではい。私はその道を使いたい。 – jtth

答えて

0

UWP StreamReaderでは、追加オプション付きのStreamのみを受け入れます。ストリングではありません。

だから、特定のパスからStreamReaderを使用するには、私自身の問題を解決することになったStorageFile

StorageFile file = await StorageFile.GetFileFromPathAsync(<Your path>); 
var randomAccessStream = await file.OpenReadAsync(); 
Stream stream = randomAccessStream.AsStreamForRead(); 
StreamReader str = new StreamReader(stream); 
0

を取得する必要があります!ドキュメンテーションにスポットがあります。

using (FileStream fs = new FileStream(path, FileMode.Open)) 
{ 
    using (StreamReader sr = new StreamReader(fs)) 
    { 
     ... 
    } 
} 

シンプルかつエレガントに

using (StreamReader sr = new StreamReader(path)) 
{ 
    ... 
} 

から

。貢献したすべての人に再び感謝します!

+0

パスがアプリフォルダの外にある場合は、ACCESS_DENIEDエラーが発生します。 –

+1

[sandboxed](https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions)環境へようこそ!通常は[FileOpenPicker](https://docs.microsoft.com)から[StorageFile](https://docs.microsoft.com/en-us/uwp/api/windows.storage.storagefile)のインスタンスを取得する必要があります。 .com/en-us/uwp/api/windows.storage.pickers.fileopenpicker)、AVKの答えでこのメソッドを使用します。パスを使用して直接ファイルにアクセスすることはできません。 –

+0

@MehrzadChehraz私はそれがまさに私に起こっていると信じています...回避策や既知の解決策はありますか?私は、ビルドのアプリケーションフォルダの外にあるファイルにアクセスできるようにする必要があります。 [FileStreams params](https://msdn.microsoft.com/en-us/library/system.io.filestream(v = vs.110).aspx)はここで動作しますか? – jtth

関連する問題