You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PowerShell的Get-ChildItem列出超260字符路径的文件?

PowerShell 5.1及更早版本处理长路径的问题

问题现象

  • 使用Get-ChildItem命令遍历路径长度超过260字符的文件夹时,会抛出ItemNotFoundException错误,或显示以下提示:

指定的路径、文件名或两者过长。完全限定文件名必须少于260个字符,目录名必须少于248个字符。

无效的尝试方案

  • 给路径添加\\?\前缀尝试绕过限制,执行后无任何返回结果;
  • 使用[System.IO.DirectoryInfo]类查询目录,仍会触发“路径过长”错误。

有适用范围的解决方案

在Windows Server 2016和Windows 10系统中,可通过修改注册表启用长路径支持:将注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem下的DWORD值LongPathsEnabled设置为1。但该方法仅适用于上述系统,对运行旧版Windows或PowerShell的环境无效。

关于\\?\前缀的疑问

原本预期添加\\?\前缀后,PowerShell/.NET会支持长路径,但实际仍报错。根据微软官方文档,该方法本应可行,文档核心内容翻译如下:

Windows文件系统的最大路径长度限制

Windows传统的文件路径最大长度为260字符,其中目录路径最多248字符,文件名最多260字符。

要绕过此限制,可使用\\?\前缀,添加后路径长度可扩展至32767字符,但需注意:

  • \\?\前缀仅适用于本地文件系统路径,无法用于UNC路径;
  • 使用该前缀时必须提供完全限定的绝对路径,不能包含.或..等相对路径组件;
  • 部分.NET API对带\\?\前缀的路径存在兼容性问题,这也是PowerShell 5.1及更早版本中该方法失效的原因之一。

内容的提问来源于stack exchange,提问作者DylanH333

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 01:46:01