-4

我一直在使用它来删除空文件夹,它非常适合我的需求。如果文件夹仅包含一个.txt文件,我需要添加一项规定以仍然删除该文件夹。如果该目录仅包含 .txt 文件,我应该如何更改此语法以仍然删除该目录?

static void Main(string[] args)
{
    string path = @"C:\Test\";
}
public static void processDirectory(string startLocation)
{
    foreach (var directory in Directory.GetDirectories(startLocation))
    {
        processDirectory(directory);
        if (Directory.GetFiles(directory).Length == 0 && Directory.GetDirectories(directory).Length == 0)
        {
            Directory.Delete(directory, false);
        }
    }           
}

编辑

这会产生语法错误,但我认为这是我想要完成的

if (Directory.GetFiles(Path.GetExtension) == ".txt")
4

1 回答 1

-2

像这样的东西?

public static void processDirectory(string startLocation)
{
    foreach (var directory in Directory.GetDirectories(startLocation))
    {
        processDirectory(directory);
        var aFiles = Directory.GetFiles(directory);
        var noFiles = aFiles.Length == 0 || (aFiles.Length == 1 && aFiles.Count(file => Path.GetExtension(file) == ".txt") == 1);
        if (noFiles && Directory.GetDirectories(directory).Length == 0)
        {
            Directory.Delete(directory, true);
        }
    }           
}

更新:OP 修改问题以指定单个文件。修改答案以匹配。

于 2015-11-30T18:02:33.527 回答