はじめに
4月12日から14日にかけて,
前回から触っているMicrosoft Translator APIですが,
テキストの読みあげには,
端末内に音声データをダウンロードしておく必要がありますので,
分離ストレージ (Isolated Storage) の基本的な利用の仕方
Windows Phone 7アプリケーションでは,
分離ストレージは,
データの保存には,
キー値でのデータ保存と取得
IsolatedStorageSettingsクラスのApplicationSettingsプロパティを使用して,
using System.IO;
using System.IO.IsolatedStorage;
private void btnStoreKeyValue_Click(object sender, RoutedEventArgs e)
{
IsolatedStorageSettings store = IsolatedStorageSettings.ApplicationSettings;
store["text"] = "こんにちは";
store.Save(); // ApplicationSettingsを保存する
}
private void btnLoadKeyValue_Click(object sender, RoutedEventArgs e)
{
IsolatedStorageSettings store = IsolatedStorageSettings.ApplicationSettings;
if (store.Contains("text"))
{
textBox.Text = (string)store["text"];
}
else
{
textBox.Text = "keyが見つかりませんでした";
}
}
インデクサでのアクセスを行うと,
string text = "";
if (store.TryGetValue<string>("text", out text))
{
textBox.Text = text;
}
ユーザーストアでのデータ保存と取得
アプリケーションIDに基づくユーザースコープに対応する分離ストレージを取得し,
using System.IO;
using System.IO.IsolatedStorage;
private void btnStoreFile_Click(object sender, RoutedEventArgs e)
{
var file = IsolatedStorageFile.GetUserStoreForApplication();
// 分離ストレージにtest.txtというファイルを作成しストリームを開く
using (IsolatedStorageFileStream strm = file.CreateFile("test.txt"))
using (StreamWriter writer = new StreamWriter(strm))
{
// データを書き込む
writer.Write("酢酸の実験室へようこそ!");
writer.Write("これはテストアプリです。");
}
}
private void btnLoadFile_Click(object sender, RoutedEventArgs e)
{
var file = IsolatedStorageFile.GetUserStoreForApplication();
// 分離ストレージ内のtest.txtというファイルを作成しストリームを開く
using (IsolatedStorageFileStream strm
= file.OpenFile("test.txt", FileMode.Open, FileAccess.Read))
using (var reader = new StreamReader(strm))
{
textBox.Text = reader.ReadToEnd();
}
}
分離ストレージに格納したデータの削除
分離ストレージに格納したデータの削除を行います。
ApplicationSettingsに格納でしたデータを削除するには,
using System.IO;
using System.IO.IsolatedStorage;
private void btnDeleteStrage_Click(object sender, RoutedEventArgs e)
{
// ApplicationSettingsの削除
IsolatedStorageSettings store = IsolatedStorageSettings.ApplicationSettings;
store.Clear();
store.Save();
// このアプリケーションのユーザーストア領域の削除
var file = IsolatedStorageFile.GetUserStoreForApplication();
file.Remove();
}
ストレージの空き容量の取得
ストレージの空き容量には仕様上の制限は存在しないのですが,
using System.IO;
using System.IO.IsolatedStorage;
private void btnFreeSpace_Click(object sender, RoutedEventArgs e)
{
var file = IsolatedStorageFile.GetUserStoreForApplication();
var spaceBytes = file.AvailableFreeSpace;
var msg = string.Format(
"空き容量は,{0:#,##0} Mbytesです。", spaceBytes / 1000000);
MessageBox.Show(msg);
}
以上がIsolated Strageの基本的な使い方です。ダウンロードした音声データを分離ストレージのファイルへ書き出すのに使用します。サンプルプロジェクトを用意しておりますので,