2012-12-05 49 views
0

我正在構建一個使用450個音樂樣本的音樂應用程序。我在應用程序包中包含所有歌曲和藝術品。我正在嘗試將它們複製到IsoStorage,並使用文件的名稱填充數據庫表以備後用。Windows Phone 7將安裝文件夾中的數據複製到IsolatedStorage

我這樣做,所以以後我的應用程序可以定期接收更新,但對於第一次使用我不想使用Web服務來下載數據。

private void InitMyStorage() 
    { 
     IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication(); 

     if (!isf.DirectoryExists("Audio")) 
     { 
      isf.CreateDirectory("Audio"); 
     } 
     DirectoryInfo di = new DirectoryInfo("Data");// Directory in the application 
     var ext = new List<String> { ".jpg", ".mp4" }; 
     var files = di.GetFiles().Where(f => ext.Contains(f.Extension)).ToList(); 
     foreach (var file in files) 
     {     
      writeFile(file.Name, "Audio\\"+file.Name); // Stream writer method 
     } 
    } 

問題是,對於模擬器,我可以看到目錄中的文件列表,但在設備上它會引發異常。

文件列表創建之後我打電話的whriteFile法這樣

private void writeFile(string szFrom, string szTo) 
    { 
     Stream str = Application.GetResourceStream(new Uri("Data/" + szFrom, UriKind.Relative)).Stream; 
     if (str != null) 
     { 
      IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication(); 
      IsolatedStorageFileStream isfsOutput = isf.OpenFile(szTo, System.IO.FileMode.Create); 

      if (isfsOutput != null) 
      { 
       BinaryReader brInput = new BinaryReader(str); 
       BinaryWriter bwOutput = new BinaryWriter(isfsOutput); 

       for (byte[] buffer = brInput.ReadBytes(1024); buffer.Length > 0; buffer = brInput.ReadBytes(1024)) 
       { 
        bwOutput.Write(buffer); 
       } 

       bwOutput.Close(); 
       brInput.Close(); 
      } 
      isfsOutput.Close(); 
     } 
    } 

如果有人可以幫助請爲什麼在設備上我無法讀取目錄:)?

或者給我一個關於如何實現這個的另一個想法。 ?。

回答

相關問題