Java如何判斷文件或者文件夾是否在?不存在如何創建?


1. 首先明確一點的是:test.txt文件可以和test文件夾同時存在同一目錄下;test文件不能和test文件夾同時存在同一目錄下。

原因是:

(1)win的文件和文件夾都是以節點形式存放,這就意味着相同的文件和文件名不能處在同一目錄下,會命名沖突。

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

 

2. 基於以上原因,如果我想在d:創建一個test文件夾,但是d:下面有一個test文件,那么由於命名沖突,是不可能創建成功的。

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

然后再通過file.isDirectory()來判斷這是不是一個文件夾。

 

 1 import java.io.File;
 2 import java.io.IOException;
 3 
 4 public class Main {
 5 
 6     public static void main(String[] args) {
 7 
 8         File file = new File("d:\\test_file.txt");
 9         Main.judeFileExists(file);
10 
11         File dir = new File("d:\\test_dir");
12         Main.judeDirExists(dir);
13     }
14 
15     // 判斷文件是否存在
16     public static void judeFileExists(File file) {
17 
18         if (file.exists()) {
19             System.out.println("file exists");
20         } else {
21             System.out.println("file not exists, create it ...");
22             try {
23                 file.createNewFile();
24             } catch (IOException e) {
25                 // TODO Auto-generated catch block
26                 e.printStackTrace();
27             }
28         }
29 
30     }
31 
32     // 判斷文件夾是否存在
33     public static void judeDirExists(File file) {
34 
35         if (file.exists()) {
36             if (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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM