Windows无法删除具有大路径的文件

时间:2015-08-19 07:31:25

标签: java windows gwt ntfs

Google Web Toolkit (GWT)在temp (C:\Users\User01\AppData\Local\Temp)目录中生成大量临时文件。

文件路径示例:

C:\Users\User01\AppData\Local\Temp\gwt-codeserver-1101830889369654349.tmp\com.company01.web.builder.BuildingsWeb\compile-2\gen\com\company01\web\theme\custom_pluto123\client\base\progressbar\Css3ProgressBarAppearance_Css3ProgressBarTemplate_render_SafeHtml__SafeHtml_text__Css3ProgressBarStyles_style__SafeStyles_wrapStyles__SafeStyles_progressBarStyles__SafeStyles_progressTextStyles__SafeStyles_widthStyles___SafeHtmlTemplatesImpl.java

上述文件路径包含437个字符。

当我尝试从Windows资源管理器中删除此类文件时,它已崩溃。此外,我试图从命令提示符中删除或重命名它The filename or extension is too long.

最后我通过运行自定义java程序删除了。

现在,我的问题是为什么Windows无法删除它?如果OS不支持它,java如何删除它?

注意:

  • 我在Windows 7旗舰版中使用正确的UAC(以管理员身份运行)尝试了上述所有命令/操作,文件系统为NTFS

1 个答案:

答案 0 :(得分:2)

Windows有260个字符(= MAX_PATH)的限制,但现在还允许通过其API版本的API创建最多32,767个字符的路径。

Windows资源管理器遗憾地无法处理长路径。

Java似乎使用Unicode API,因此可以创建和删除长路径。

资源:

  1. https://support.microsoft.com/en-us/kb/320081
  2. https://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx