Windows 10中的最大文件名长度是多少?Java将尝试/捕获将通过exeption实现的功能?
在旧版本的windows中,我知道文件或文件夹的最大长度大约为250个字符,有人知道他们是否在windows 10中更改了它吗
编辑:
我正在围绕给定的API编写一些Java代码,以提取应用程序的一些内容,将有几千个文件,我有点担心会发生什么,因为我不知道文件名和路径会是什么样子,所以我将尝试防止这些错误,可能会在保存之前更改Java中的名称(但最好保留原始名称)
那么你知道会不会有一些豁免File file = new File(jsonFile);
?谢谢你,我可能会在捕获中处理
# 1 楼答案
如果你真的是指filename,我相信限制仍然是“通常”255个字符,请参见第三段(“Windows API有很多…”)如下
如果您指的是文件路径:您可以启用“Win32长路径”选项。从this Microsoft document:
请注意,尽管那篇文章说组策略编辑器的设置是“启用NTFS长路径”,但情况不再如此;现在是“启用Win32长路径”:
# 2 楼答案
路径组件(目录或文件名)的最大长度通常为255,但在外部存储器(CD-ROM、FAT-16软盘等)上的某些文件系统上可能更短。唯一确定的方法是调用^{} 。此函数将最大组件报告为DWORD,但Windows当前限制为255
完整路径的最大长度各不相同:
人们常说的极限是260,它来自
MAX_PATH
常数。这是Windows 95/98/ME上的绝对限制在Windows NT based系统上,当使用特殊前缀调用kernel32中低级文件系统函数的Unicode版本时,此限制可以是bypassed。前缀为
\\?\
的路径直接传递给NT API。执行此操作时不支持相对路径。这些路径限制在大约32.000个字符以内,这个限制来自Windows内核中使用的字符串格式尽管这种方法已经支持了25年,但大多数Windows仍然限于
MAX_PATH
。shell/Explorer在不同的地方都有这个限制,CreateProcess
也有这个限制Windows 10添加了对长度超过
MAX_PATH
且没有特殊前缀的路径的支持。只有当应用程序在其清单中选择了此行为并且在系统上启用了“启用Win32长路径”policy时,才会激活此支持shell/Explorer中的大多数
MAX_PATH
限制已在Windows 10中删除