我想删除每个文件夹内没有gif图像文件。我不介意如果它有文本文件或任何其他文件,如果文件夹/s有没有gif文件删除它。
var dirsRad = Directory.GetDirectories(radarImagesFolder);
var dirsSat = Directory.GetDirectories(satelliteImagesFolder);
if(dirsRad.Length > 0)
{
foreach(string dir in dirsRad)
{
if(!Directory.EnumerateFileSystemEntries(dir).Any())
{
Directory.Delete(dir, true);
}
}
}
if(dirsSat.Length > 0)
{
foreach (string dir in dirsSat)
{
if (!Directory.EnumerateFileSystemEntries(dir).Any())
{
Directory.Delete(dir, true);
}
}
}
这个代码的问题是,如果在文件夹/s有一个文本文件,它不会删除文件夹/s,我想,即使有任何文件不是gif类型删除文件夹/s
仅当文件夹包含gif图像文件时,才保留文件夹。
尝试上面的代码,但文件夹/s其中一些有一个文本文件内,所以它不会删除文件夹/s.
1条答案
按热度按时间5fjcxozz1#
你可以使用枚举方法的重载来获取以
.gif
结尾的文件,如果没有,就删除文件夹(包括子目录和文件)。这仅适用于当前目录。如果
dirsRad
的子目录中包含.gif
文件,则它们将被删除。如果这不是您想要的,请谨慎操作。它还假设GIF文件仅由其小写扩展名标识,如果您怀疑某些GIF文件不遵守这一点,例如写为
.GIF
的文件,则必须使该方法不区分大小写。这就转化为这样一个简单的变化: