我在 Silverlight 应用程序中使用 IsolatedStorage 进行缓存,因此我需要知道该文件是否存在,我使用以下方法执行该操作。
我找不到IsolatedStorage的 FileExists 方法,所以我只是捕获异常,但它似乎是一个非常一般异常,我担心它会比文件不存在时捕获更多。
有没有更好的方法来确定IsolatedStorage中是否存在这样的文件:
public static string LoadTextFromIsolatedStorageFile(string fileName)
{
string text = String.Empty;
using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication())
{
try
{
using (IsolatedStorageFileStream isfs = new IsolatedStorageFileStream(fileName,
FileMode.Open, isf))
{
using (StreamReader sr = new StreamReader(isfs))
{
string lineOfData = String.Empty;
while ((lineOfData = sr.ReadLine()) != null)
text += lineOfData;
}
}
return text;
}
catch (IsolatedStorageException ex)
{
return "";
}
}
}
答案 0 :(得分:4)
来自“手册”(.net framework 2.0 Application Development Foundation):
与任意存储的文件的应用程序编程接口(API)不同
在文件系统中,隔离存储中的文件API不支持检查
直接存在像File.Exists
这样的文件。相反,你需要问问
存储与特定文件掩码匹配的文件列表。如果找到,你可以打开
文件,如本例所示
string[] files = userStore.GetFileNames("UserSettings.set");
if (files.Length == 0)
{
Console.WriteLine("File not found");
}
else
{
// ...
}