是否可以在 Linux 上的 Java 中模拟文件创建异常



我做了一个简单的测试,以确保 ant 任务的行为正常,因此为 Windows 和 Linux 输入了非法文件字符,如下所示:

@Test(expected=BuildException.class)
public void destinationDirectoryCreationException() throws Exception {
    backupTask.setSrcDir(testResourceDirectory);
    backupTask.setDestDir(new File("?/"));
    backupTask.execute();
}

不幸的是,/是非法文件字符的原因是它是路径分隔符,因此这将照常创建目录。

此外,char 0nul 被各种 apis(特别是本机文件 apis 和 eclipse 的调试变量资源管理器)解释为流的结束,因此之后会忽略所有内容。

No.Linux太棒了,不能因为你可怜的小测试而失败。

好的,所以osgx实际上提出了一个特别适用于我的测试的解决方案(如果他做出了答案,他可以获得15次代表;)); 使目录成为不存在的目录的子目录。 例如 backupTask.setDestDir(new File("/\/?/")); .唯一的问题是它与原始测试略有不同,但我对此没意见。

另请注意,(我相信)如果调用.mkdirs()而不是mkdir(),它仍然会成功创建文件夹

相关内容

  • 没有找到相关文章

最新更新