一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java讀取其下所有文件夾與文件路徑的方法

Java讀取其下所有文件夾與文件路徑的方法

2021-04-12 09:31yongh701 Java教程

這篇文章主要為大家詳細介紹了Java讀取其下所有文件夾與文件路徑的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

java讀取其下所有文件夾與文件的路徑,具體內容如下

如果在f:\aa文件夾中,有如下圖的文件夾與文件:

Java讀取其下所有文件夾與文件路徑的方法

那么,在java中,則如此讀取f:/aa下的所有文件路徑

1、首先由于用到了文件與容器類下的arraylist,所以在開頭要引入如下包:

?
1
2
import java.io.*;
import java.util.*;

2、方法如下,其中file dirfile除了盤符,比如f:,以外,能夠接受一切合法的路徑。由于盤符下含有一些系統文件,拒絕訪問,因為讀取盤符,可能會出現空指針異常。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//這里是僅僅查詢當前路徑下的所有文件夾、文件并且存放其路徑到文件數組
//由于遇到文件夾不查詢其包含所有子文件夾、文件,因此沒必要用到遞歸
public static arraylist<string> dir(file dirfile) throws exception {
  arraylist<string> dirstrarr = new arraylist<string>();
 
  if (dirfile.exists()) {
    //直接取出利用listfiles()把當前路徑下的所有文件夾、文件存放到一個文件數組
    file files[] = dirfile.listfiles();
    for (file file : files) {
      //如果傳遞過來的參數dirfile是以文件分隔符,也就是/或者\結尾,則如此構造
      if (dirfile.getpath().endswith(file.separator)) {
        dirstrarr.add(dirfile.getpath() + file.getname());
      } else {
        //否則,如果沒有文件分隔符,則補上一個文件分隔符,再加上文件名,才是路徑
        dirstrarr.add(dirfile.getpath() + file.separator
            + file.getname());
      }
    }
  }
  return dirstrarr;
}

其上的方法,是不讀取f:\aa下的新建文件夾下的xlsx,如果在讀取的過程中,遇到文件夾要同時讀取其包含所有子文件夾、文件時,則要用到遞歸,先設置一個全局的動態數組:

?
1
public static arraylist<string> dirallstrarr = new arraylist<string>();

然后方法如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public static void dirall(file dirfile) throws exception {
 
  if (dirfile.exists()) {
    file files[] = dirfile.listfiles();
    for (file file : files) {
      //如果遇到文件夾則遞歸調用。
      if (file.isdirectory()) {
        // 遞歸調用
        dirall(file);
      } else {
        //如果遇到文件夾則放入數組
        if (dirfile.getpath().endswith(file.separator)) {
          dirallstrarr.add(dirfile.getpath() + file.getname());
        } else {
          dirallstrarr.add(dirfile.getpath() + file.separator
              + file.getname());
        }
      }
    }
  }
}

其實在讀取的過程中,關鍵是利用listfiles()方法,獲取本文件夾下的所有文件列表,之后和《【java】移動文件夾及其所有子文件與子文件夾》 , 《【java】利用文件輸入輸出流完成把一個文件夾內的所有文件拷貝的另一的文件夾的操作》 一樣,遇到文件夾則進行遞歸。

上面整個方法的來起來是這樣的一個java文件:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import java.io.*;
import java.util.*;
 
public class filelist {
  // 設置一個全局動態數組,來存放文件路徑
  // 主要遍歷文件夾,包含所有子文件夾、文件的情況時,用到遞歸,所以要這樣設置
  public static arraylist<string> dirallstrarr = new arraylist<string>();
 
  // 這里是僅僅查詢當前路徑下的所有文件夾、文件并且存放其路徑到文件數組
  // 由于遇到文件夾不查詢其包含所有子文件夾、文件,因此沒必要用到遞歸
  public static arraylist<string> dir(file dirfile) throws exception {
    arraylist<string> dirstrarr = new arraylist<string>();
 
    if (dirfile.exists()) {
      // 直接取出利用listfiles()把當前路徑下的所有文件夾、文件存放到一個文件數組
      file files[] = dirfile.listfiles();
      for (file file : files) {
        // 如果傳遞過來的參數dirfile是以文件分隔符,也就是/或者\結尾,則如此構造
        if (dirfile.getpath().endswith(file.separator)) {
          dirstrarr.add(dirfile.getpath() + file.getname());
        } else {
          // 否則,如果沒有文件分隔符,則補上一個文件分隔符,再加上文件名,才是路徑
          dirstrarr.add(dirfile.getpath() + file.separator
              + file.getname());
        }
      }
    }
    return dirstrarr;
  }
 
  public static void dirall(file dirfile) throws exception {
 
    if (dirfile.exists()) {
      file files[] = dirfile.listfiles();
      for (file file : files) {
        // 如果遇到文件夾則遞歸調用。
        if (file.isdirectory()) {
          // 遞歸調用
          dirall(file);
        } else {
          // 如果遇到文件夾則放入數組
          if (dirfile.getpath().endswith(file.separator)) {
            dirallstrarr.add(dirfile.getpath() + file.getname());
          } else {
            dirallstrarr.add(dirfile.getpath() + file.separator
                + file.getname());
          }
        }
      }
    }
  }
 
  public static void main(string[] args) throws exception {
    file dirfile = new file("f:/aa");
    system.out.println(dir(dirfile));
    dirall(dirfile);
    system.out.println(dirallstrarr);
  }
}

運行結果如下:

Java讀取其下所有文件夾與文件路徑的方法

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/yongh701/article/details/45170381

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品免费久久久久影院小说 | 国产女乱淫真高清免费视频 | 国产成人青草视频 | 奇米影视在线视频 | 国产免费成人在线视频 | 亚洲AV无码一区二区三区乱子伦 | 亚洲高清成人 | 福利入口在线观看 | 国产精选之刘婷野战 | 亚洲高清国产拍精品影院 | 香蕉久久夜色精品国产小优 | gay中国| 亚洲国产日韩欧美mv | 天美传媒在线视频 | 国产伦精品一区二区三区免费迷 | 日本妇人成熟免费不卡片 | 免费看a视频 | 19+韩国女主播激情vip视频在线 | 成人嗯啊视频在线观看 | 69热精品视频在线看影院 | 插鸡视频在线观看 | 1024免费永久福利视频 | 情欲满载2012美国dvd | 毛片视频网站 | 午夜国产精品视频在线 | 精品久久久久免费极品大片 | 手机在线观看国产精选免费 | 日韩久久中文字幕 | 国产成人刺激视频在线观看 | 国产国语videosex另类 | 国产91 最新 在线 | 亚洲国产精品一区二区久久 | 美女扒开两腿露出尿口的视频 | 国产啪精品视频网给免丝袜 | 情趣内衣在线观看 | 女bbwxxxx非洲黑人 | 日本中文字幕高清 | 公园暴露娇妻小说 | 日韩在线一区 | 国产在线精品香蕉综合网一区 | 久久毛片基地 |