如何找到空目錄中的所有空文件。給定的文件可能有回車符或空格。我也需要捕捉這些。我可以在PowerShell或C#中使用代碼。如何查找所有空文件遞歸
回答
的System.IO有類你想
DirectoryInfo di = new DirectoryInfo("c:\\Luke101");
FileInfo[] fiArr = di.GetFiles();
foreach (FileInfo fi in fiArr)
{
if(fi.Length == 0)
{
//.. Then do stuff
}
}
不遞歸,不會匹配「空白」文件,但它是一個開始.. – 2012-07-11 21:34:52
@pst op的問題是「空目錄中的空文件」,因此遞歸不需要op – HatSoft 2012-07-11 21:38:49
通常不匹配標題I假設..也「給定的文件可能有回車符或空格。」雖然。 – 2012-07-11 22:10:02
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
}
}
}
代碼是從我的過頂,沒有測試,由你可以得到的想法。
Downvoted,因爲您正在創建和打開的StreamReader有點嚇人。它不僅會在檢查文件的長度之前將文件的全部內容加載到內存中(最好是笨重的,最糟糕的是危險的),但它永遠不會被明確處理,這意味着釋放資源的地點/時間是不確定的。翻譯:打開的文件很容易變成內存泄漏... – 2012-07-11 21:48:53
編輯,謝謝。我只是傾向於吐出一行,因爲stakoverflow的帖子編輯器在縮進時很糟糕(我希望我的製表符工作,該死!)。 – Dmitriy 2012-07-11 21:52:10
爲了完全酷,最好是逐行讀取文件,並在非空格符號存在時停止。這會更有成效。但是歐普的要求更像是一個家庭作業,所以我並不在乎。 – Dmitriy 2012-07-11 21:54:06
Powershell的很容易:
Get-ChildItem -Path C:\dir -recurse -Filter { $_.Length -eq 0 }
#YOUR HOMEWORK: filter for your CRLF criteria as well
當問題詢問空文件時,應添加-File標誌。 – rigel 2017-07-07 04:13:31
找一個只有空格,製表符全零字節長度的文件或文件,CR從文件到結束的開始。
Get-ChildItem <path> -Recurse |
Where-Object {!$_.PSIsContainer -and ($_.Length -eq 0 -or ([IO.File]::ReadAllText($_.FullName) -match '^\s+$') }
- 1. 查找文件夾中的所有.php文件遞歸
- 2. 遞歸查找目錄中的所有文本文件
- 3. 如何讓遞歸下載所有空文件的腳本?
- 4. 查找並刪除空文件夾遞歸沒有「-empty」參數
- 5. 如何從目錄中遞歸地查找所有文件擴展名?
- 6. 如何在Linux中遞歸查找目錄中的所有* .js文件?
- 7. 遞歸檢查所有文件的所有權
- 8. 如何在Perl腳本中遞歸查找文件/文件夾?
- 9. 以遞歸方式查找空文件夾並遞歸刪除它們
- 10. 如何遞歸列出所有文件夾和文件?
- 11. 使用靜態遞歸查找文件
- 12. 遞歸查找和替換文件
- 13. 在jsTestDriver中遞歸地查找文件
- 14. 遞歸需要的所有文件
- 15. 輸入所有子文件夾 - 遞歸
- 16. 從Vim遞歸打印所有文件
- 17. 如何使用CXML-STP的查找遞歸和查找遞歸如果
- 18. 遞歸找到包含所有給定模式的文件
- 19. 遞歸找到所有文件的最佳方式(REST API)
- 20. 遞歸找到所有不以評論開頭的php文件
- 21. 在PHP中,我如何遞歸刪除所有非空的文件夾?
- 22. 如何在bash中的所有子文件夾中遞歸和同時查找文件
- 23. 如何在目錄中遞歸地查找文件
- 24. 如何遞歸遍歷目錄樹並僅查找文件?
- 25. 如何在Java中遞歸地查找文件?
- 26. 查找遞歸今天的所有文件,並將它們複製
- 27. 查找和替換所有文件中的字符串遞歸用grep和sed
- 28. 如何在遞歸SQL查詢中查找子樹中的所有節點?
- 29. 遞歸查找目錄A下的所有文件,寫入「abc」到這些文件。只有到文件
- 30. 找到所有索引與遞歸
那麼,從(發佈)代碼開始遞歸搜索。然後考慮如何過濾結果...... – 2012-07-11 21:27:52
只需枚舉目錄中的所有文件(可能是遞歸的),然後在每個文件上使用'System.IO.FileInfo'並檢查長度。 – 2012-07-11 21:28:49