(修改)
我的代码无法读取文本文件。显然; y,当我想阅读文件时,他们给了我一个“找不到文件!”它位于if else循环中的消息框,表示if循环中的代码不起作用。
private void OnSaveFile()
{
if (!string.IsNullOrEmpty(this.FileName))
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
if (store.FileExists(FileName))
store.DeleteFile(FileName);
using (var fileStream = store.OpenFile(FileName, FileMode.Create, FileAccess.Write))
{
using (var writer = new StreamWriter(fileStream))
{
writer.WriteLine(FileName);
writer.WriteLine(FileText1);
writer.WriteLine(FileText2);
}
}
}
}
}
private void OnReadSelected()
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
if (store.FileExists(FileName))
{
using (var fileStream = store.OpenFile(FileName, FileMode.Open, FileAccess.Read))
{
using (var reader = new StreamReader(fileStream))
{
FileName = reader.ReadLine();
FileText1 = reader.ReadLine();
FileText2 = reader.ReadLine();
}
}
}
else
{
MessageBox.Show("File not found!");
}
}
}
CreateTextPage:
private void Button_Click(object sender, RoutedEventArgs e)
{
AddFileModel model = this.LayoutRoot.DataContext as AddFileModel;
model.SaveFile.Execute(null);
model.FileName = string.Empty;
model.FileText1 = string.Empty;
model.FileText2 = string.Empty;
MessageBox.Show("File saved successfully");
NavigationService.Navigate(new Uri("/CompleteQuestionPage.xaml", UriKind.Relative));
}
ReadFilePage:
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
AddFileModel model = this.LayoutRoot.DataContext as AddFileModel;
model.ReadSelectedFiles.Execute(null);
}
答案 0 :(得分:1)
在OnSaveFile方法中,看起来您将数据保存到名为“myfile.txt”的文件中。在OnReadSelected中,您使用'Filename'属性打开文件。什么是'文件名'设置为?因为如果它没有设置为“myfile.txt”,那么这就是你看到'找不到文件'的原因。
尝试更改
using (var fileStream = store.OpenFile("myfile.txt", FileMode.Create, FileAccess.Write))
到
using (var fileStream = store.OpenFile(Filename, FileMode.Create, FileAccess.Write))
另外,更改
using (var reader = new StreamReader(fileStream))
FileName = reader.ReadLine();
FileText1 = reader.ReadLine();
FileText2 = reader.ReadLine();
到
using (var reader = new StreamReader(fileStream))
{
FileName = reader.ReadLine();
FileText1 = reader.ReadLine();
FileText2 = reader.ReadLine();
}
让你的代码编译。
更新:
好的,现在你在按钮点击处理程序中执行此操作:
model.SaveFile.Execute(null);
model.FileName = string.Empty;
您将'Filename'的值设置为空字符串;稍后,你再次调用OnReadSelected,它使用'Filename'中的值。由于它被设置为空字符串,我认为这就是为什么你看到'找不到文件'。如果删除行
会发生什么model.FileName = string.Empty;
?你还得到“找不到文件”吗?