2013年7月16日 星期二

複製 Resouce 至檔案系統

有時我們會在專案中放一些圖片、影片之類的檔案當作應用程式的範例檔,或預設頭像之類的,此處記錄一下該如何把專案中的資源複製到 IsolatedStorage 中。

大致上重點在於用 StreamResourceInfo 讀取 Resource 並將 stream 寫入檔案

IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication();

if (!isoStore.FileExists("default.png"))
{
    // 讀入 Resource 為 Byte Array
    StreamResourceInfo resource = Application.GetResourceStream(new Uri("Assets/DefaultHeadSet.png", UriKind.Relative));
    Byte[] btImage = new Byte[resource.Stream.Length];
    resource.Stream.Read(btImage, 0, (int)resource.Stream.Length);

    // 將 Byte Array 寫入檔案
    IsolatedStorageFileStream fileDefaultImage = new IsolatedStorageFileStream("default.png", FileMode.CreateNew, FileAccess.Write, isoStore);
    fileDefaultImage.Write(btImage, 0, btImage.Length);
    fileDefaultImage.Flush();
    fileDefaultImage.Close();
    fileDefaultImage.Dispose();
}
isoStore.Dispose();

當然上面是很基本的示範寫法,實作上當然是包裝成 function 來用

public void SaveResourceToFile(String sourceFile, String destinationFile)

沒有留言:

張貼留言