有没有比这更好的方法来确定是否存在IsolatedStorage文件?

时间:2010-04-14 11:15:43

标签: c# silverlight isolatedstorage

我在 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 "";
        }
    }
}

1 个答案:

答案 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
{
    // ...

}