当应用程序启动时,会执行文本文件的更新检查。如果远程文件的版本号高于本地版本,则将远程文件保存到隔离存储并替换当前文件。不幸的是,它没有按预期工作。旧文件还在存储中。
public static bool WriteFileToIsolatedStorage(String content, String fileName)
{
bool result = false;
MessageBox.Show(Leser.GetVersionInfo(content));
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
StreamWriter writer = new StreamWriter(new IsolatedStorageFileStream(fileName, FileMode.Truncate, store));
try
{
writer.Write(content);
writer.Flush();
writer.Close();
result = true;
}
catch
{
result = false;
}
return result;
}
我尝试了几个 FileMode 参数,如“Create”或“Truncate”,但是当应用程序重新启动时,总是有可用的更新。写入存储时没有错误,但版本号表明它无法正常工作。
我的项目资源管理器中有一个文本文件,其中包含应如上所述更新的数据。一开始我会检查这个文件的存储空间,如果没有找到,它将被写入。这按预期工作。但是更新的版本没有写,我不知道为什么不写。
解决方案:写作工作正常 :) 问题是我读取了资源文件而不是保存到隔离存储的文件
public static String ReadFileContents(String file)
{
String content = String.Empty;
var ResourceStream = Application.GetResourceStream(new Uri(file, UriKind.Relative));
if (ResourceStream != null)
{
Stream myFileStream = ResourceStream.Stream;
if (myFileStream.CanRead)
{
StreamReader myStreamReader = new StreamReader(myFileStream);
content = myStreamReader.ReadToEnd();
}
}
return content;
}
对不起大家!