您的位置:首页 > 编程语言 > Java开发

JAVA中如何判断文件或文件夹是否存在

2017-11-17 15:48 926 查看
1. 首先明确一点的是:test.txt文件可以和test文件夹同时存在同一目录下;test文件不能和test文件夹同时存在同一目录下。

原因是:

(1)win的文件和文件夹都是以节点形式存放,这就意味着相同的文件和文件名不能处在同一目录下,会命名冲突。

(2)文件后缀名也算是文件名的一部分,即test.txt文件和test文件不是相同文件名的文件。

 

2. 基于以上原因,如果我想在d:创建一个test文件夹,但是d:下面有一个test文件,那么由于命名冲突,是不可能创建成功的。

所以,在创建之前,要通过file.exists()判断是否存在test命名的文件或者文件夹,如果返回true,是不能创建的;

然后再通过file.isDirectory()来判断这是不是一个文件夹。

import java.io.File;
import java.io.IOException;

public class Main {

public static void main(String[] args) {

File file = new File("d:\\test_file.txt");
Main.judeFileExists(file);

File dir = new File("d:\\test_dir");
Main.judeDirExists(dir);
}

// 判断文件是否存在
public static void judeFileExists(File file) {

if (file.exists()) {
System.out.println("file exists");
} else {
System.out.println("file not exists, create it ...");
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

// 判断文件夹是否存在
public static void judeDirExists(File file) {

if (file.exists()) {
if (file.isDirectory()) {
System.out.println("dir exists");
} else {
System.out.println("the same name file exists, can not create dir");
}
} else {
System.out.println("dir not exists, create it ...");
file.mkdir();
}

}

}
判断文件夹是否存在还可以简写成一下这样:
if (!file.exists() && !file.isDirectory()) {
System.out.println("同名文件或文件夹不存在");
file .mkdir();
}else{
System.out.println("同名文件或目录已存在");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: