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-directories
和sub-directories
的Several Main directories
包含另一个包含约3-5 files
的1-100 additional sub-directories
目前,我所知道的唯一技术(使用foreach
语句和许多IsolatedStorageFile.GetUserStoreForApplication().GetDirectoryNames()
)很难达到你所说的高效。
有没有一种更容易/更简单的方法来检查递归删除目录及其文件?
由于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();
}
请记住,这会删除所有内容,甚至配置