设置日期之前的文件和文件夹将被删除。
但是,有问题。
我要检查文件并在根文件夹中删除,然后检查文件并在子文件夹中删除一次
但是在删除子文件夹中的文件之后,请检查根文件夹中的文件。
我不想重复检查已经确认的文件。
public void FolderAndFileDelete(DirectoryInfo directoryInfo, SQLiteConnection connection, HashSet<string> splitedExtension, DateTime setTime)
{
FileInfo[] files = directoryInfo.GetFiles();
DirectoryInfo[] directoryInfos = directoryInfo.GetDirectories();
if (files != null)
{
foreach (var file in files)
{
file.Delete();
}
if (subFolderRemoveCheckBox.Checked == true)
{
foreach (DirectoryInfo subfolder in directoryInfos)
{
if (subfolder.GetFiles().Length == 0)
{
subfolder.Delete();
}
else if (subfolder.GetFiles().Length != 0)
{
this.FolderAndFileDelete(subfolder, connection, splitedExtension, setTime);
}
if (!subfolder.Exists)
return;
}
}
}
}
我该如何解决?
答案 0 :(得分:1)
您的方法可以简化一些,因为如果希望删除所有文件和子目录,可以将then
传递给true
的{{1}}方法。请注意,我添加了一个Delete
参数来指定是否应删除子文件夹,因此您将为此参数传递DirectoryInfo
:
bool