在Windows中克服最大的文件path长度限制

我们的一个客户习惯性地使用很长的path名(几个嵌套的文件夹,名字很长),我们经常遇到“用户教育问题”,以便将path缩短到less于260个字符。

有没有可用的技术scheme,我们可以在Windows 7和Windows 2008 R2中popup一些开关来说“是的,只要忽略这些历史问题,就可以使+260字符的path名称起作用”。

PS我已阅读并完全通过命名文件,path和命名空间 unnedified

  • 在Windows上运行远程命令,如linux上的ssh -c
  • 在Windows防火墙中configuration多个块IP
  • 确保可执行文件始终运行?
  • 如何监视Adaptec / Intel ICH10R RAID控制器(任何SNMP通知选项?)
  • 即使在分配正确的权限后,如何接收拒绝访问错误?
  • 在Windows Server 2008中重置pipe理员密码
  • 4 Solutions collect form web for “在Windows中克服最大的文件path长度限制”

    方法在那里,但直到微软重新编码文件浏览器小部件,我们几乎坚持这个老问题。 这是不理想的,但这是它的工作原理。

    只是提到一个技巧,我没有看到在这里提到。

    以这个文件为例:

    C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf

    这个完整的文件path长度是290个字符。 shell(Windows资源pipe理器)和大多数命令行实用程序可能不会让你触摸它。

    像这样使用subst命令:

     subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow" 

    现在你可以这样访问(并删除,移动等)文件:

    X:\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason\936DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns\2013\2013_tax_return.pdf

    而现在这个文件名只有~235个字符左右,所以你不会再遇到“文件名太长”的问题。

    在Windows API中,有一个被称为MAX_PATH的臭名昭着的常量。 MAX_PATH是260个字符。 NTFS文件系统实际上支持最多32,767个字符的文件path。 而且,通过访问Windows API函数的Unicode(或“wide”)版本,还可以使用32,767个字符长的path名,也可以使用\\?\作为path的前缀。

    在Windows世界里, MAX_PATH早已被设置了很久 。 我认为这与当时的ANSI标准有些关系……但是现在微软很难改变这种情况,因为现在我们有成千上万的程序和应用程序,包括一些由微软自己编写的程序和应用程序, MAX_PATH ,如果常数突然改变,将会以奇怪的新方式失败。 (缓冲区溢出,堆损坏等)

    你可以通过使用\\?\ C:notation来解决这个限制。 这是丑陋的,但它支持文件长度高达2 ^ 15。

    http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath

    微软现在有一个可用的修补程序,从Windows 10开始,在命名文件,path和命名空间 MSDN文章中进行了解释。

    darthcoder已经回答了有关\\?\C:表示法解决方法的详细信息,但是HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)现在有一个registry项,可用于删除MAX_PATH限制一个单一的系统。 本文还提到了在Computer Configuration > Administrative Templates > System > Filesystem > Enable NTFS long paths以进行组织或组范围实施(如果需要)的组策略控制的支持。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.