Easy Way to Recursively Delete Directories in IsolatedStorag

本文关键字:Directories in IsolatedStorag Delete Recursively Way to Easy | 更新日期: 2023-09-27 18:29:04

在IsolatedStorage中,您必须删除目录中的所有文件夹和文件,然后才能在IsolateyStorage中删除目录本身。

通常,如果我在IsolatedStorage中删除一个目录,其中有一些文件,我会得到目录列表,然后使用foreach语句检查每个目录是否都有文件,然后使用另一个foreach语句删除这些目录中的每个文件。

然而,我在IsolatedStorage中有一个更复杂的FileSystem,它看起来有点像这样:

包含Several sub-directoriessub-directoriesSeveral Main directories包含另一个包含约3-5 files1-100 additional sub-directories

目前,我所知道的唯一技术(使用foreach语句和许多IsolatedStorageFile.GetUserStoreForApplication().GetDirectoryNames())很难达到你所说的高效。

有没有一种更容易/更简单的方法来检查递归删除目录及其文件?

Easy Way to Recursively Delete Directories in IsolatedStorag

由于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);
}

用户存储有一个方法Clear(),它可以清理整个

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

请记住,这会删除所有内容,甚至配置