酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Windows Phoneでアプリリソースのファイルを分離ストレージにコピーする

アプリケーション内に存在しているビルドアクションを「コンテンツ」にした画像ファイルを、分離ストレージにコピーします。

f:id:ch3cooh393:20141210003556p:plain

アプリリソースとして存在しているimage01.gif〜image07.gifのストリームを取得して、分離ストレージのユーザーストアにファイルを作成して、データを書き込みます。

// アプリリソースの画像ファイルを分離ストレージにコピーする
void CopyData()
{
    using (var store = IsolatedStorageFile.GetUserStoreForApplication())
    {
        for (int i = 1; i <= 7; i++)
        {
            // ファイル名を作成
            var fileName = string.Format("image{0:d2}.gif", i);

            // 同名のファイルが存在している場合、ファイルを削除する
            if (store.FileExists(fileName)) {
                store.DeleteFile(fileName);
            }

            var uri = new Uri(fileName, UriKind.Relative);
            using (var strmReader = Application.GetResourceStream(uri).Stream)
            using (var strmWriter = store.OpenFile(fileName, FileMode.CreateNew))
            {
                // アプリリソースのストリームを読み出す
                var bytes = new byte[strmReader.Length];
                strmReader.Read(bytes, 0, bytes.Length);

                // 分離ストレージに保存する
                strmWriter.Write(bytes, 0, bytes.Length);
            }
        }
    }
}

関連記事

blog.ch3cooh.jp