Text Picker

Picker を使って TEXT FILE を選択します。

前田稔の超初心者のプログラム入門

プログラムの説明

  1. Windows Store では、クライアントが知らないうちにファイルにアクセスされるのを防ぐために、直接アクセス出来るフォルダーは限られています。
    任意のハードディスクのファイルにアクセスするときは Picker を使ってクライアントが選択します。
    今回は Picker を使って選択した TEXT FILE を TextBox に印字します。
  2. 新規プロジェクトを作成して Button と TextBox を張り付けます。
    MainPage.xaml のデザイン画面で、プロパティからウインドウと TextBox のサイズ(700*500)を設定しています。
    TextBox の名前 "textBox" を確認して下さい。
    プロジェクトの生成とツールの貼り付けは C# Store Application を参照して下さい。
  3. MainPage.xaml.cs の MainPage() 関数を修正します。
    Picker を使うので using を追加して下さい。
    AcceptsReturn = true; で改行を許可して下さい。
    using System;
      ・・・
    using Windows.Storage;
    using Windows.Storage.Pickers;
    using Windows.Storage.Streams;
      ・・・
            public MainPage()
            {
                this.InitializeComponent();
                textBox.AcceptsReturn = true;
            }
    
  4. Button クリックにイベントハンドラを設定して、Picker を使って入力したテキストを TextBox に設定します。
            async private void Button_Click(object sender, RoutedEventArgs e)
            {
                FileOpenPicker picker = new FileOpenPicker();
                picker.FileTypeFilter.Clear();
                picker.FileTypeFilter.Add(".txt");
                picker.FileTypeFilter.Add(".cs");
                StorageFile file = await picker.PickSingleFileAsync();
                string data = await FileIO.ReadTextAsync(file);
                textBox.Text = data;
            }
    
  5. Button をクリックすると、ウインドウエクスプローラと同様にフォルダーツリーから TEXT FILE を選択することが出来ます。
    FileIO.ReadTextAsync(file) でファイルからテキストデータを読み込みます。
    utf-8(BOM無し&BOMあり)及び utf-16 で書かれたファイルを選択すると TextBox に印字されます。
    BOM が格納されていない shift-jis のファイルは、文字が化けてしまいます。
    .cs のソースファイルは utf-8(BOMあり)でタイプされているので正常に印字されました。

超初心者のプログラム入門(C# Frame Work)