我想知道是否存在某种方法来检查文件是否存在而不创建java.io.File
的实例
我总是使用以下方式:
File f = new File("./path/to/file");
if (f.exists()) {
doSomething();
}
else {
manageError();
}
但是我知道我需要检查一些文件路径,以便创建像logger(使用log4j),xml编辑器和其他项目结构这样的元素,但我不需要使用它们。
因此我想知道这是否可行。
我正在使用J2SE-1.5_22。
提前致谢!
答案 0 :(得分:5)
我不知道你在做什么有什么问题。创建File
的实例不会在磁盘或任何内容上创建文件。如果需要,您可以随时编写静态方法:
public static boolean checkFileExists(string path)
{
return new File(path).exists();
}
如果这不符合您的要求,请说明您尝试做的事情,但这与此无关。
答案 1 :(得分:1)
我认为原来java.io.File
的作者认为如果你正在检查一个文件的存在,那么你可能会对它做一些事情:如果它存在则修改它或者如果不存在则创建一个新文件
Jon的解决方案是您应该添加到Utils
的解决方法。 File
对象非常轻巧,很容易丢弃。
答案 2 :(得分:0)
另一种方法是使用私有Java类。虽然我不建议,除非你知道你在做什么。
类似的东西:
public static boolean fileExists(File file) {
return ((FileSystem.getFileSystem().getBooleanAttributes(file) & FileSystem.BA_EXISTS) != 0);
}
虽然这段代码不能单独使用,因为FileSystem是一个私有类,但是用反射将它改成公共类,它应该可以工作。