我正在构建一个音乐应用程序,其中我使用了450个音乐样本。我在应用程序包中包含了所有歌曲和艺术作品。我正在尝试将它们复制到IsoStorage,并使用文件名填充DB表以供以后使用。
我这样做以后我的应用程序可以定期收到更新,但是第一次使用时我不想使用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();
}
}
如果有人可以帮助请:)为什么在设备上我无法读取目录?
或者给我另一个如何实现它的想法。 ?。