在powershell中确定文件或文件夹是否为空的正确方法是什么?我遇到了这个post并尝试了第二个用户提供的示例,并且它有效。
现在,我一直在使用length属性检查目录是否为空,如下所示:
(Get-ChildItem -Path "C:\Users\someUser\Downloads\" -Recurse).Length)
但是,它只返回文件/文件夹的字节数。我测试了length属性,发现如果你在下载中放置了一个空白文本文件/文件夹,那么length属性将不会返回正确的值。
您可以使用length属性来正确确定目录所拥有的文件/文件夹的数量吗?
答案 0 :(得分:1)
试试这个,它会计算项目数:
Get-ChildItem -Path "C:\Users\someUser\Downloads\" -Recurse | Measure-Object
答案 1 :(得分:1)
如果您想确定文件或文件夹是空的,可以使用以下内容:
表示文件:
If ((Get-Content C:\YouFile.txt) -eq $Null) {
"The file is empty"
}
如果文件包含空格,则它不会返回null,因此如果您想检查空白区域,可以使用以下内容:
If ([string]::IsNullOrWhiteSpace((Get-Content C:\YourFile.txt))) {
"The file is empty"
}
表示文件夹:
If ((Get-ChildItem -Force C:\SomeFolder) -eq $Null) {
"the Folder is empty"
}
答案 2 :(得分:0)
处理此问题的另一种方法是在System.Io.Directory - Directory.EnumerationFileSystemInfos()中使用基本静态方法,并查看返回的对象数(如果有)。请注意,FileSystemInfo可以是目录或文件,因此它适用于您的情况。
[system.io.directory]::EnumerateFileSystemEntries("C:\temp")