如果仅包含文本文件则删除文件夹
Delete Folder If Only Contains Text File
我一直用这个来删除空文件夹,非常适合我的需要。如果文件夹只包含一个 SINGLE .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")
是这样的吗?
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 .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")
是这样的吗?
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 修改了问题以指定单个文件。修改答案以匹配。