-4

これを使用して空のフォルダーを削除していますが、私のニーズに完全に合っています。フォルダーに単一の.txtファイルしか含まれていない場合でも、フォルダーを削除するには、1 つの条件を追加する必要があります。ディレクトリに .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);
        }
    }           
}

EDIT

これは構文エラーを生成しますが、それは私が達成しようとしていたものだと思います

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 は、SINGLE ファイルを指定するように質問を変更しました。一致するように修正された回答。

于 2015-11-30T18:02:33.527 に答える