3

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 "";
        }
    }
}
4

1 に答える 1

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

} 
于 2010-04-14T11:20:15.357 に答える