Chr*_*rds 41 windows windows-server-2008 windows-7 ntfs
我们的一位客户习惯性地使用很长的路径名(几个嵌套文件夹,名称很长),我们经常遇到“用户教育问题”,以便将路径缩短到少于 260 个字符。
是否有可用的技术解决方案,我们能否在 Windows 7 和 Windows 2008 R2 中轻弹某种开关以说“是的,只需忽略这些历史问题,并使 +260 字符路径名起作用”。
PS 我已经阅读了命名文件,路径和命名空间,并且完全没有受到启发
Rya*_*ies 32
只是提到一个我在这里还没有看到提到的技巧。
以这个文件为例:
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
这个完整的文件路径是 290 个字符长。外壳(Windows 资源管理器)和大多数命令行实用程序可能不会让您接触它。
subst像这样使用命令:
subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"
Run Code Online (Sandbox Code Playgroud)
现在您可以访问(以及删除、移动等)该文件:
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 个字符的文件路径。通过访问 Unicode(或“宽”)版本的 Windows API 函数,您仍然可以使用 32,767 个字符的长路径名,还可以通过在路径前加上\\?\.
MAX_PATH在石头上设置一个很长的在Windows世界时间前。我认为这与当时的 ANSI 标准有关......但这是微软现在很难改变的事情之一,因为现在我们有成千上万的程序和应用程序,包括一些由微软自己编写的,使用MAX_PATH如果常数突然改变,就会以奇怪的新方式失败。(缓冲区溢出、堆损坏等)
sys*_*138 13
方法就在那里,但在微软重新编码文件浏览器小部件之前,我们几乎被这个老问题所困扰。这是次优的,但这就是它的工作原理。
小智 12
您可以通过使用 \\?\C: 符号来绕过此限制。它很难看,但它支持的文件长度最大为 2^15。
http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath
从 Windows 10 开始,Microsoft 现在有一个可用的修复程序,在命名文件、路径和命名空间MSDN 文章中对此进行了解释。
darthcoder 已经回答了有关\\?\C:符号解决方法的详细信息,但现在有一个注册表项HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled (Type: REG_DWORD)可用于删除单个系统的 MAX_PATH 限制。Computer Configuration > Administrative Templates > System > Filesystem > Enable NTFS long paths如果需要,文章还提到了对组织或组范围实施的组策略控制的支持。
| 归档时间: |
|
| 查看次数: |
233387 次 |
| 最近记录: |