如何递归查找所有空文件

时间:2012-07-11 21:25:24

标签: c# powershell

如何在目录中找到所有空文件。给定文件可能包含回车符或空格。我也需要抓住那些。我可以在powershell或c#中使用代码。

4 个答案:

答案 0 :(得分:3)

Powershell让事情变得简单:

Get-ChildItem -Path C:\dir -recurse -Filter { $_.Length -eq 0 }

#YOUR HOMEWORK: filter for your CRLF criteria as well

答案 1 :(得分:2)

System.IO拥有您想要的类

    DirectoryInfo di = new DirectoryInfo("c:\\Luke101");
    FileInfo[] fiArr = di.GetFiles();

    foreach (FileInfo fi in fiArr)
    {
        if(fi.Length == 0)
        {
            //.. Then do stuff
        }
    }

答案 2 :(得分:2)

var files = new DirectoryInfo("Your path").GetFiles("*.*", SearchOption.AllDirectories);
foreach(var file in files) 
{
    using(var r = new StreamReader(file.OpenRead()))
    {
       string content = r.ReadToEnd();
       if(string.IsnullOrWhitespace(content))
       {
       // do stuff
       }
    }
}

代码是我的最爱,没有测试,你可以得到这个想法。

答案 3 :(得分:0)

从文件开头到结尾,获取所有零字节长度的文件或只包含空格,制表符和CR的文件。

Get-ChildItem <path> -Recurse | 
Where-Object {!$_.PSIsContainer -and ($_.Length -eq 0 -or ([IO.File]::ReadAllText($_.FullName) -match '^\s+$') }
相关问题