我正在使用Windows Phone 7.5中的IsolatedStorage。我试图从文件中读取一些文本。但是调试器说在IsolatedStorageFileStream上不允许该操作。为什么呢?
//Read the file from the specified location.
fileReader = new StreamReader(new IsolatedStorageFileStream("info.dat", FileMode.Open, fileStorage));
//Read the contents of the file (the only line we created).
string textFile = fileReader.ReadLine();
//Write the contents of the file to the MEssageBlock on the page.
MessageBox.Show(textFile);
fileReader.Close();
更新我的新代码
object _syncObject = new object();
lock (_syncObject)
{
using (var fileStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
using (FileStream stream = new FileStream("/info.dat", FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (var reader = new StreamReader(stream))
{
string textFile = reader.ReadLine();
MessageBox.Show(textFile);
}
}
}
}
}
答案 0 :(得分:0)
通常当我使用隔离存储时,我做过类似的事情:
using (var stream = fileStorage.OpenFile("info.dat", FileMode.Open))
{
using (var reader = new StreamReader(stream))
{
...
}
}
...而不是直接在IsolatedStorageFileStream
上调用构造函数。我不能肯定地说这是否会解决,但值得一试......
答案 1 :(得分:0)
只是一个猜测:
您可以使用fileStorage.FileExists()
检查文件是否存在或使用FileMode.OpenOrCreate
。
答案 2 :(得分:0)
试试这个,它对我有用:希望它也适合你
String sb;
using (IsolatedStorageFile myIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication())
{
if (myIsolatedStorage.FileExists(fileName))
{
StreamReader reader = new StreamReader(new IsolatedStorageFileStream(fileName, FileMode.Open, myIsolatedStorage));
sb = reader.ReadToEnd();
reader.Close();
}
if(!String.IsNullOrEmpty(sb))
{
MessageBox.Show(sb);
}
}
如果这不起作用,那么您的文件可能不存在。