好的,我已经搜索并尝试了所有可能的解决方案,但仍然是抛出异常。任何帮助都会很棒。
public void SaveOrReplace(string fileContent)
{
using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!storage.DirectoryExists("FX"))
storage.CreateDirectory("FX");
if (storage.FileExists(FilePath))
storage.DeleteFile(FilePath);
//when I debug, it code does not get past here
// when I remove this first using no exception, but of course I can't write some text to the file
using (IsolatedStorageFileStream fileStream = storage.CreateFile(FilePath))
{
using (StreamWriter writer = new StreamWriter(fileStream))
{
writer.Write(fileContent);
fileStream.Dispose();
}
}
}
}
堆栈跟踪以获取您的信息。
at System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, IsolatedStorageFile isf)
at System.IO.IsolatedStorage.IsolatedStorageFile.CreateFile(String path)
at FXNews.Models.FFNewsProvider.SaveOrReplace(String fileContent)
at FXNews.Models.FFNewsProvider.<Load>d__b.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at FXNews.Models.FFNewsProvider.<GetNewsCollection>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at FXNews.ViewModels.PivotPageViewModel.<GetAllNews>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at FXNews.Views.PivotPage.<OnNavigatedTo>d__2.MoveNext()
在这种情况下,我做错了什么?
答案 0 :(得分:0)
好的,在随机摆弄代码后,我设法做到了。说实话,我不确定它背后的原因,但它确实有效。
public void SaveOrReplace(string fileContent)
{
using (IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (!storage.DirectoryExists("FX"))
storage.CreateDirectory("FX");
if (storage.FileExists(FilePath))
storage.DeleteFile(FilePath);
using (IsolatedStorageFileStream fileStream = storage.OpenFile(FilePath, FileMode.CreateNew, FileAccess.Write, FileShare.Read))
{
using (StreamWriter writer = new StreamWriter(fileStream))
{
writer.Write(fileContent);
writer.Dispose();
}
fileStream.Dispose();
}
}
}
我改变了FilePath
private const string FilePath = "FX/ffcal.xml"; // does not work, throw a different exception after I did above changes
private const string FilePath = "FX/ffcal.txt"; // this works fine, save the xml in txt and parse it. It works okay