【发布时间】:2014-07-18 12:46:29
【问题描述】:
对于我的应用程序,我正在测试允许移动到回收站的最长可用文件路径,我得到了有趣的结果。
在 Windows XP 上,最大大小为 259 个字符,即 MAX_PATH 常量减 1。
但在我的 Windows 8.1 Pro 上,最大允许的文件路径大小似乎是 215 个字符。
所以我很好奇是否有任何官方指南?
编辑:好的,因为下面的发帖人请求 API,我使用 SHFileOperation 与 FO_DELETE 和 FOF_ALLOWUNDO 将用户的文件放入回收站。由于 Windows 资源管理器对其删除操作使用相同的 API,因此很容易通过在 Windows 资源管理器中创建一个长路径然后尝试删除它来测试它。在我的实验中,我可以看到以下内容:
Windows XP,如果总路径长度为 259 个字符(在某些版本上可能为 257??),文件/文件夹将被放入回收站。否则,Windows 资源管理器仅提供永久删除它的选项。
Windows Vista,此限制为 217 个字符(含)。
Windows 7 和 8,包含 215 个字符。
所以看起来这个最大限制正在缩小......所以我很好奇,如果这在 MSDN 的某个地方有记录?
【问题讨论】:
-
这个问题属于superuser.com
-
@Spook:为什么?这是一道编程题。
-
是的,在大多数情况下它可能属于两者,尽管我不确定用户为什么会真正关心这一点。对我来说,这绝对像是一个编程问题(属于这里)。还有一个很好的。 +1
-
IIRC “允许的最长 [总] 路径”大于 MAX_PATH:参考 stackoverflow.com/questions/265769/… 和 msdn.microsoft.com/en-us/library/windows/desktop/…(请参阅扩展长度路径:“Windows API 有许多也有 Unicode 版本的函数允许最大总路径长度为 32,767 个字符的扩展长度路径。")
-
@c00000fd 不,不是。这是一个关于 Windows 文件系统,特别是 NTFS 的问题。 superuser.com/search?q=longest+file+path+windows
标签: windows winapi windows-shell windows-explorer