我被这个问题困住了——显然,我做错了什么。
首先,我通过 WebClient 下载一个 zip 文件并将其存储到 IsolatedStorage:
using (var isf = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!isf.DirectoryExists("AppData")) isf.CreateDirectory("AppData");
using (StreamWriter sw = new StreamWriter(new IsolatedStorageFileStream("AppData\\" + FileName, FileMode.OpenOrCreate, isf)))
{
sw.Write(new StreamReader(e.Result).ReadToEnd());
}
}
接下来,我从 WebClient 响应中提取一个特定文件(zip 文件):
Uri fileUri = new Uri("content.txt", UriKind.Relative);
StreamResourceInfo info = new StreamResourceInfo(e.Result, null);
StreamResourceInfo streamInfo = System.Windows.Application.GetResourceStream(info, fileUri);
这按预期工作。稍后,我想使用以下方法从 IsolatedStorage 中的 zip 文件中提取“content.txt”:
using (IsolatedStorageFileStream isfs = isf.OpenFile("AppData\\" + FileName, FileMode.Open, FileAccess.Read))
{
if (myIsolatedStorage.FileExists("AppData\\" + FileName))
{
Uri fileUri = new Uri("content.txt", UriKind.Relative);
StreamResourceInfo info = new StreamResourceInfo(isfs, null);
StreamResourceInfo streamInfo = System.Windows.Application.GetResourceStream(info, fileUri);
}
}
尽管可以找到 zip 存档,但 streamInfo 始终为空。我究竟做错了什么?