Powershell - 检查目录是否为空的正确方法

时间:2015-02-07 20:40:54

标签: powershell

在powershell中确定文件或文件夹是否为空的正确方法是什么?我遇到了这个post并尝试了第二个用户提供的示例,并且它有效。

现在,我一直在使用length属性检查目录是否为空,如下所示:

(Get-ChildItem -Path "C:\Users\someUser\Downloads\" -Recurse).Length)

但是,它只返回文件/文件夹的字节数。我测试了length属性,发现如果你在下载中放置了一个空白文本文件/文件夹,那么length属性将不会返回正确的值。

您可以使用length属性来正确确定目录所拥有的文件/文件夹的数量吗?

3 个答案:

答案 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")