使用java.io.File
:
File f = new File(filePathString);
if(f.exists() && !f.isDirectory()) {
// do something
}
我建议使用isFile()
而不是isFile()
exists()
。大多数时候,您都希望检查路径是否不仅指向文件而且还指向文件。请记住,如果您的路径指向目录,则exists()
将返回 true。
new File("path/to/file.txt").isFile();
new File("C:/").exists()
将返回 true,但不允许您以文件形式打开和读取文件。
通过在 Java SE 7 中使用 nio,
import java.nio.file.*;
Path path = Paths.get(filePathString);
if (Files.exists(path)) {
// file exist
}
if (Files.notExists(path)) {
// file is not exist
}
如果两者都exists
且notExists
返回 false,则无法验证文件的存在。 (也许没有访问权限)
您可以检查path
是目录还是常规文件。
if (Files.isDirectory(path)) {
// path is directory
}
if (Files.isRegularFile(path)) {
// path is regular file
}
请检查此Java SE 7 教程 。
使用 Java 8:
if(Files.exists(Paths.get(filePathString))) {
// do something
}
File f = new File(filePathString);
这不会创建物理文件。只会创建 File 类的对象。要物理创建文件,您必须显式创建它:
f.createNewFile();
因此,可以使用f.exists()
检查此类文件是否存在。
f.isFile() && f.canRead()
有多种方法可以实现此目的。
如果只是为了生存。它可以是文件或目录。
new File("/path/to/file").exists();
检查文件
File f = new File("/path/to/file");
if(f.exists() && f.isFile()) {}
检查目录。
File f = new File("/path/to/file");
if(f.exists() && f.isDirectory()) {}
Java 7 方式。
Path path = Paths.get("/path/to/file");
Files.exists(path) // Existence
Files.isDirectory(path) // is Directory
Files.isRegularFile(path) // Regular file
Files.isSymbolicLink(path) // Symbolic Link
您可以使用以下内容: File.exists()
在 Google 上首次匹配 “java 文件存在”:
import java.io.*;
public class FileTest {
public static void main(String args[]) {
File f = new File(args[0]);
System.out.println(f + (f.exists()? " is found " : " is missing "));
}
}
别。只需捕获FileNotFoundException.
文件系统必须测试文件是否仍然存在。重复两次都是没有意义的,有几个原因不这样做,例如:
不要试图对系统进行第二次猜测。它知道。并且不要试图预测未来。通常,测试任何资源是否可用的最佳方法就是尝试使用它。