在文件夹

时间:2019-02-07 01:24:14

标签: c#

设置日期之前的文件和文件夹将被删除。

但是,有问题。

我要检查文件并在根文件夹中删除,然后检查文件并在子文件夹中删除一次

但是在删除子文件夹中的文件之后,请检查根文件夹中的文件。

我不想重复检查已经确认的文件。

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;

                }

            }
        }
    }

我该如何解决?

1 个答案:

答案 0 :(得分:1)

您的方法可以简化一些,因为如果希望删除所有文件和子目录,可以将then传递给true的{​​{1}}方法。请注意,我添加了一个Delete参数来指定是否应删除子文件夹,因此您将为此参数传递DirectoryInfo

bool