gpt4 book ai didi

c# - 如果文件夹为空,则使用 C# 删除文件夹

转载 作者:行者123 更新时间:2023-11-30 14:16:10 25 4
gpt4 key购买 nike

我正在编写一个工具,可以让我遍历相当大的目录和子目录列表。如果它是空的,我希望它删除一个文件夹。我可以使用以下代码删除空的文件夹和子文件夹:

string dir = textBox1.Text;
string[] folders = System.IO.Directory.GetDirectories(dir, "*.*", System.IO.SearchOption.AllDirectories);
foreach (var directory in folders)
{
if (System.IO.Directory.GetFiles(directory).Length == 0 && System.IO.Directory.GetDirectories(directory).Length == 0)
{
System.IO.StreamWriter Dfile = new System.IO.StreamWriter(newpath, true);
System.IO.Directory.Delete(directory);
}
}

我的问题是如何让代码通过并在每次删除后检查文件夹,因为一旦它删除了一个文件夹,它可能会使父文件夹为空,然后应该将其删除。一旦代码没有找到任何空的文件夹或子文件夹,它就会退出。

最佳答案

写一个深度优先递归函数。当您完成每个递归调用时,检查当前文件夹以查看它是否为空。如果是,则将其删除。

类似这样的东西(伪代码)

DeleteEmptyFolders(path)
{
foreach Folder f in Path
{
DeleteEmptyFolders(f);

if (f is empty)
{
Delete(f);
}
}
}

关于c# - 如果文件夹为空,则使用 C# 删除文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8143345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com