Uri uri = new System.Uri("ms-appx:///test.txt");
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(uri);
using (Stream stream = (await file.OpenReadAsync()).AsStream()) {
using (TextReader reader = new StreamReader(stream)) {
textBox.Text = await reader.ReadToEndAsync();
}
}
Shift-JISのファイルを読むにはEncoderを指定する
Uri uri = new System.Uri("ms-appx:///test.txt");
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(uri);
using (Stream stream = (await file.OpenReadAsync()).AsStream()) {
var enc = System.Text.Encoding.GetEncoding("Shift_JIS");
using (TextReader reader = new StreamReader(stream, enc)) {
textBox.Text = await reader.ReadToEndAsync();
}
}
デフォルトでは Shift-JIS のEncoderが取得できない(例外が発生する)。
デフォルト以外のエンコードを使用するには、Applicationの初期化などで次の関数をコールしておく。
デフォルト以外のエンコードを使用するには、Applicationの初期化などで次の関数をコールしておく。
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
特定のフォルダ以外のファイル(直接パスを指定して)は読むことが出来ない。
"毎回"ファイルピッカーを表示ユーザーに指定してもらうしかないらしい。
これは保存時でも同じで、"上書き保存"という動作さえも出来ない。
ファイルを使うアプリはユーザーから見ても使いづらいことになっているようだ。
15/12/08 追記
StorageApplicationPermissions.FutureAccessList を使用して一度ユーザーに指定されたファイルを保存しておくことができるようだ。
これを用いれば次回アプリケーションが起動した時にそのファイルを使用したりすることが可能。
15/12/08 追記
StorageApplicationPermissions.FutureAccessList を使用して一度ユーザーに指定されたファイルを保存しておくことができるようだ。
これを用いれば次回アプリケーションが起動した時にそのファイルを使用したりすることが可能。
0 件のコメント:
コメントを投稿