如何在目录中找到所有空文件。给定文件可能包含回车符或空格。我也需要抓住那些。我可以在powershell或c#中使用代码。
答案 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+$') }