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

标签 java windows gwt ntfs

Google Web Toolkit (GWT)在临时 (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 无法删除它?如果它不受操作系统支持,java 如何删除它?

注意:

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

最佳答案

Windows 有 260 个字符 (=MAX_PATH) 的限制,但现在也允许通过其 API 的 Unicode 版本创建最多 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

关于java - Windows 无法删除具有大路径的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089149/

相关文章:

java - 获取 "java.lang.NoClassDefFoundError: org/apache/http/nio/reactor/IOReactorException"

windows - 批处理文件复制文件

windows - 为什么对 GetClipRgn 的结果调用 GetRgnBox 会返回与 GetClipRect 截然不同的矩形?

gwt - 作为 SAML token 身份验证的一部分,URL 片段丢失;解决方法/标准模式?

java - 如何检查点是否在对角线周围的矩形内?

java - String.split 导致最后一个索引换行

java - 使用 Meteor 和 Java 加密和解密数据

java - 如何从另一种方法访问在一种方法中初始化的字符串数组?

c# - 仅使用 XNA dll 运行 XNA 游戏?

java - 其他复合小部件未接收 ChangeEvent