获取文件夹大小按大小排序,包括太长的路径名

获取文件夹大小按大小排序,包括太长的路径名

任务:显示 C:\temp 中的主文件夹(按顶部/大小排序),c:\temp 文件夹内部有很多子文件夹,路径也很长。

喜欢

c:\temp
c:\temp\folder1
c:\temp\folder1\sub_folder
c:\temp\folder2
c:\temp\folder2\sub_folder_more_folder_long_folders_files_names_as_well

我想显示这样的文件夹列表

Name     Type        Size
folder1  Directory   10
folder2  Directory   12

我正在使用以下 powershell 脚本来获取文件夹名称及其大小,按大小排序,最后仅显示前 20 个文件夹。

ls c:\temp | select Name,
    @{
        Name="Type";Expression={
            if($_.psIsContainer)
            {
                "Directory"
            }
            else
            {
                "File"
            }
        }
    },
    @{
        Name="Size(GB)";
        Expression=
        {
            [Math]::Round($(ls $_.FullName -recurse| measure Length -sum).Sum/1GB, 3)
        }
    } | sort -property "Size(GB)" -desc | Select -First 20

这给了我结果,

    USER1          Directory                       11.166
    USER2          Directory                       2.917
    USER3          Directory                       0.042

The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.The specified path, file name, or both are too long. 

如我所见,它还会出现长路径名错误,我该如何解决这个问题?

答案1

您可能不应该有那么深的路径。各种应用程序将能够或不能访问它们,这取决于所述应用程序的实现。

也就是说你可以看看问题,更具体地说是\\?符号如这里所述并检查是否可以使用 PS 来规避限制。

相关内容