Java如何判断⽂件或者⽂件夹是否在?不存在如何创建?
1. ⾸先明确⼀点的是:⽂件可以和test⽂件夹同时存在同⼀⽬录下;test⽂件不能和test⽂件夹同时存在同⼀⽬录下。
java创建文件
原因是:
(1)win的⽂件和⽂件夹都是以节点形式存放,这就意味着相同的⽂件和⽂件名不能处在同⼀⽬录下,会命名冲突。
(2)⽂件后缀名也算是⽂件名的⼀部分,即⽂件和test⽂件不是相同⽂件名的⽂件。
2. 基于以上原因,如果我想在d:创建⼀个test⽂件夹,但是d:下⾯有⼀个test⽂件,那么由于命名冲突,是不可能创建成功的。
所以,在创建之前,要通过ists()判断是否存在test命名的⽂件或者⽂件夹,如果返回true,是不能创建的;
然后再通过file.isDirectory()来判断这是不是⼀个⽂件夹。
1import java.io.File;
2import java.io.IOException;
3
4public class Main {
5
6public static void main(String[] args) {
7
8        File file = new File("d:\\");
9        Main.judeFileExists(file);
10
11        File dir = new File("d:\\test_dir");
12        Main.judeDirExists(dir);
13    }
14
15// 判断⽂件是否存在
16public static void judeFileExists(File file) {
17
18if (ists()) {
19            System.out.println("file exists");
20        } else {
21            System.out.println("file not exists, create it ...");
22try {
23                ateNewFile();
24            } catch (IOException e) {
25// TODO Auto-generated catch block
26                e.printStackTrace();
27            }
28        }
29
30    }
31
32// 判断⽂件夹是否存在
33public static void judeDirExists(File file) {
34
35if (ists()) {
36if (file.isDirectory()) {
37                System.out.println("dir exists");
38            } else {
39                System.out.println("the same name file exists, can not create dir");
40            }
41        } else {
42            System.out.println("dir not exists, create it ...");
43            file.mkdir();
44        }
45
46    }
47
48 }