- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Java 中使用文件路径时,我们遇到了奇怪的问题。问题是,有时,在 Windows 中工作时,对路径中使用斜杠和反斜杠创建的文件进行操作会失败。通常,我们用反斜杠替换斜杠,但我们无法确定为什么有时操作失败而其他操作失败。
具体操作是file.delete()。如果只是失败,它不会抛出任何类型的异常。
最佳答案
您不应该使用File.delete()
正是出于您所描述的原因;如果操作失败,它不会为您提供有意义的响应。
使用 Files.delete(Path)
或 Files.deleteIfExists(Path)
删除文件(由 Path
表示,请参阅 Paths.get(String…)
和 File.toPath()
),因为这些方法将抛出有意义的 IOException
失败时只有后者返回 boolean
这将指示成功或不存在,但所有其他条件都会标记为异常。
Windows API 中确实有一些函数会默默地处理斜杠作为分隔符,但由于没有指定哪些 Java API 方法将使用哪些 native 函数,因此您不能依赖这方面的任何特定行为。您应该始终使用 File.separatorChar
所示的分隔符或<a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystems.html#getDefault()" rel="noreferrer noopener nofollow">FileSystems.getDefault()</a><a href="http://docs.oracle.com/javase/7/docs/api/java/nio/file/FileSystem.html#getSeparator()" rel="noreferrer noopener nofollow">.getSeparator()</a>
当使用nio
时API。
关于java - 文件路径中斜杠和反斜杠的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28151817/
我是一名优秀的程序员,十分优秀!