|
|
1
255
引用这篇文章 https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file#maximum-path-length-limitation
现在我们看到它是1+2+256+1或[drive][:\][path][null]=260。可以假设256是DOS时代的合理固定字符串长度。回到DOSAPI,我们意识到系统跟踪每个驱动器的当前路径,我们已经 26 (32 with symbols) maximum drives (和当前目录)。 INT 0x21 AH=0x47表示此函数返回不带驱动器号和初始反斜杠的路径描述。因此,我们看到系统将CWD存储为一对(驱动器,路径),您通过指定驱动器(1=a,2=B,)来请求路径,如果您指定了0,那么它将假定INT 0x21 AH=0x15 AL=0x19返回的驱动器路径。现在我们知道为什么是260而不是256,因为这4个字节没有存储在路径字符串中。 为什么选择256字节的路径字符串,因为640K的内存足够了。 |
|
|
2
161
严格来说,这不是真的,因为NTFS文件系统支持最多32k个字符的路径。您可以使用win32 api和“
详细解释.Net中的长路径
BCL team blog
|
|
|
3
125
为什么?
限制是否仍然存在。当然,现代窗户可以增加窗户的侧面
通过API合同,Windows向所有应用程序保证标准文件API返回的路径不会超过
考虑以下事项 对的
窗户
我的程序,它将填充我的
我的结构定义正确,只分配
微软 创建一种使用完整32768路径名的方法;但他们必须创建一个新的API合同来实现这一点。首先,你应该使用 壳牌API
但它们也不能破坏现有的用户应用程序。绝大多数应用程序都是这样做的
不
使用shell api进行文件工作。每个人都只是打电话
|
|
4
65
|
|
|
5
33
您可以将文件夹装载为驱动器。从命令行,如果您有路径
|
|
|
6
19
处理路径限制的一种方法是使用符号链接缩短路径条目。 例如:
|
|
|
7
15
|
|
|
8
10
至于 为什么? 这仍然存在- MS不认为它是优先考虑的,并且在推进OS(至少在这种情况下)时考虑向后兼容性。
我使用的一种解决方法是对路径中的目录使用“短名称”,而不是它们的标准、人类可读版本。所以
例如
|
|
|
9
8
7zip 打包(和解包)路径长度敏感的文件似乎是一种可行的解决方法。我用它来传输几个IDE安装(那些Eclipse插件路径,yikes!)和成堆的自动生成文档,到目前为止还没有出现任何问题。 不太清楚它是如何避开Windows设置的260个字符的限制的(从技术角度来看),但是,嘿,它工作了! 有关SourceForge页面的更多详细信息 here
重要提示: 要使其正常工作,您需要在 7拉链 this question 了解更多信息。 |
|
10
6
确实如此,出于某种原因,它是默认值,但您可以使用以下注册表项轻松覆盖它:
见: https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/ |
|
|
11
3
另一种处理方法是使用Cygwin,这取决于您想对文件做什么(即Cygwin命令是否适合您的需要) 例如,它允许复制、移动或重命名即使是Windows资源管理器也无法复制、移动或重命名的文件。或者当然要处理它们的内容,比如md5sum、grep、gzip等等。
|
|
|
Rackover · 超过PHP二进制限制 8 年前 |
|
|
ulima2_ · Jekyll截断博客帖子数量的条件是排除一些 8 年前 |
|
|
Kabhi · 相当于Postgres查询的SQL Server 9 年前 |
|
|
Zelphir Kaltstahl · 在Racket中指定内存限制 9 年前 |
|
|
sinabakh · 限制套接字io连接数 10 年前 |