1

IsolatedStorage では、IsolatedStorage でディレクトリ自体を削除する前に、ディレクトリ内のすべてのフォルダーとファイルを削除する必要があります。

通常、内部にいくつかのファイルがある IsolatedStorage のディレクトリを削除する場合、ディレクトリのリストを取得し、foreachステートメントを使用して、それぞれにファイルがあるかどうかを確認し、別のforeachステートメントを使用してそれらのディレクトリ内の各ファイルを削除します。

IsolatedStorageただし、次のように見える、はるかに複雑な FileSystem が進行中です。

Several Main directoriesSeveral sub-directoriesこれらを含むものには、約を含むものsub-directories があります1-100 additional sub-directories3-5 files

現時点で私が知っている唯一のテクニック (foreachステートメントと多くのを使用IsolatedStorageFile.GetUserStoreForApplication().GetDirectoryNames()) は、効率的とは言い難いものです。

ディレクトリとそのファイルを再帰的に削除することを確認する簡単で簡単な方法はありますか?

4

2 に答える 2

4

API は再帰的な削除をサポートしていないため、自分で行う必要があります。例のように

public static void DeleteDirectoryRecursively(this IsolatedStorageFile storageFile, String dirName)
{
    String pattern = dirName + @"\*";
    String[] files = storageFile.GetFileNames(pattern);
    foreach (var fName in files)
    {
        storageFile.DeleteFile(Path.Combine(dirName, fName));
    }
    String[] dirs = storageFile.GetDirectoryNames(pattern);
    foreach (var dName in dirs)
    {
        DeleteDirectoryRecursively(storageFile, Path.Combine(dirName, dName));
    }
    storageFile.DeleteDirectory(dirName);
}
于 2013-08-24T19:42:46.920 に答える
0

ユーザー ストアには、すべてをクリーンアップする Clear() メソッドがあります。

using (var userStore = IsolatedStorageFile.GetUserStoreForApplication())
{
    userStore.Clear();
}

これにより、構成も含めてすべてが削除されることに注意してください

于 2013-08-24T19:46:37.803 に答える