Local Folder

Local Folder の入出力です。

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

プログラムの説明

  1. Windows Store では、クライアントが知らないうちにファイルにアクセスされるのを防ぐために、直接アクセス出来るフォルダーは限られています。
  2. 今回は簡単な TEXT DATA を格納したファイル(test.txt)を Local Folder に書き出して、作成されたファイルを入力して MessageDialog に表示します。
    Local Folder はアプリをインストールすると作成され、アンインストールすると完全に消去されます。
    新規プロジェクトから[空白アプリ(ユニバーサル Windows)]を作成します。
    MainPage.xaml.cs の修正だけなので、ツールの貼り付けは不要です。
  3. MainPage.xaml.cs を修正します。
    File と MessageDialog を使うので using を追加します。
    SaveFile() がファイルの作成で、LoadFile() がファイルの入力です。
    using Windows.Storage;
    using Windows.UI.Popups;
    using System.Diagnostics;
    
        public MainPage()
        {
            this.InitializeComponent();
            SaveFile();
            LoadFile();
        }
        private async void SaveFile()
        {
            StorageFile file = null;
            Debug.Write("\n* Save test.txt *\n");
            try
            {
                StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
                file = await storageFolder.CreateFileAsync("test.txt", CreationCollisionOption.ReplaceExisting);
                await FileIO.WriteTextAsync(file, "Local Write\nTEST Message");
            }
            catch (FileNotFoundException)
            {
                MessageDialog dlg = new MessageDialog("FileNotFoundException");
                await dlg.ShowAsync();
            }
        }
        private async void LoadFile()
        {
            StorageFile file = null;
            Debug.Write("\n* Load test.txt *\n");
            try
            {
                StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; 
                file = await storageFolder.GetFileAsync("test.txt");
                if (file != null)
                {   string str = await FileIO.ReadTextAsync(file);
                    MessageDialog dlg = new MessageDialog(str);
                    await dlg.ShowAsync();
                }
            }
            catch (FileNotFoundException)
            {
                MessageDialog dlg = new MessageDialog("FileNotFoundException");
                await dlg.ShowAsync();
            }
        }
    
  4. Package.appxmanifest を表示して Local Folder の名前を確認します。
      <Identity
        Name="baf7bc4f-eda6-441a-9446-af57854272ce"
        Publisher="CN=maeda"
        Version="1.0.0.0" />
    
  5. Local Folder は「C:\Users\<ユーザ名>\AppData\Local\Packages\<アプリID>\LocalState\」になります。
    今回は下記のフォルダーに test.txt が格納されていました。
    C:\Users\maeda\AppData\Local\Packages\baf7bc4f-eda6-441a-9446-af57854272ce\LocalState\test.txt
    
  6. Local Folder は、アプリからアクセスが可能で自由にファイルの入出力が出来るのですが、 アプリをインストールした時に作成され、アンインストールすると完全に消去されるので注意が必要です。
    例えば、アプリに必要なファイル(データ)をインストールする前に格納しておくことは出来ません。

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