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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

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

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

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

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

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

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

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

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

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

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

2、方法如下,其中file dirfile除了盤(pán)符,比如f:,以外,能夠接受一切合法的路徑。由于盤(pán)符下含有一些系統(tǒng)文件,拒絕訪問(wèn),因?yàn)樽x取盤(pán)符,可能會(huì)出現(xiàn)空指針異常。

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

其上的方法,是不讀取f:\aa下的新建文件夾下的xlsx,如果在讀取的過(guò)程中,遇到文件夾要同時(shí)讀取其包含所有子文件夾、文件時(shí),則要用到遞歸,先設(shè)置一個(gè)全局的動(dòng)態(tài)數(shù)組:

?
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) {
      //如果遇到文件夾則遞歸調(diào)用。
      if (file.isdirectory()) {
        // 遞歸調(diào)用
        dirall(file);
      } else {
        //如果遇到文件夾則放入數(shù)組
        if (dirfile.getpath().endswith(file.separator)) {
          dirallstrarr.add(dirfile.getpath() + file.getname());
        } else {
          dirallstrarr.add(dirfile.getpath() + file.separator
              + file.getname());
        }
      }
    }
  }
}

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

上面整個(gè)方法的來(lái)起來(lái)是這樣的一個(gè)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 {
  // 設(shè)置一個(gè)全局動(dòng)態(tài)數(shù)組,來(lái)存放文件路徑
  // 主要遍歷文件夾,包含所有子文件夾、文件的情況時(shí),用到遞歸,所以要這樣設(shè)置
  public static arraylist<string> dirallstrarr = new arraylist<string>();
 
  // 這里是僅僅查詢當(dāng)前路徑下的所有文件夾、文件并且存放其路徑到文件數(shù)組
  // 由于遇到文件夾不查詢其包含所有子文件夾、文件,因此沒(méi)必要用到遞歸
  public static arraylist<string> dir(file dirfile) throws exception {
    arraylist<string> dirstrarr = new arraylist<string>();
 
    if (dirfile.exists()) {
      // 直接取出利用listfiles()把當(dāng)前路徑下的所有文件夾、文件存放到一個(gè)文件數(shù)組
      file files[] = dirfile.listfiles();
      for (file file : files) {
        // 如果傳遞過(guò)來(lái)的參數(shù)dirfile是以文件分隔符,也就是/或者\(yùn)結(jié)尾,則如此構(gòu)造
        if (dirfile.getpath().endswith(file.separator)) {
          dirstrarr.add(dirfile.getpath() + file.getname());
        } else {
          // 否則,如果沒(méi)有文件分隔符,則補(bǔ)上一個(gè)文件分隔符,再加上文件名,才是路徑
          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) {
        // 如果遇到文件夾則遞歸調(diào)用。
        if (file.isdirectory()) {
          // 遞歸調(diào)用
          dirall(file);
        } else {
          // 如果遇到文件夾則放入數(shù)組
          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);
  }
}

運(yùn)行結(jié)果如下:

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费被靠视频动漫 | 国产欧美一区二区精品性色 | 牛牛色婷婷在线视频播放 | 四虎影院在线免费播放 | 女教师被学生糟蹋三天 | 精品视频一区二区三区免费 | 青草精品| 俄罗斯激情性孕妇孕交大全 | 操儿媳小说 | 好吊色青青青国产综合在线观看 | 美女脱了内裤打开腿让人桶网站o | yellow视频免费观看播放 | 欧美免赞性视频 | 涩色网 | 99国产精品免费视频 | 天天av天天翘天天综合网 | 秒播影视 午夜福利毛片 | 无遮挡免费h肉动漫在线观看 | 亚洲天堂2013 | 奇米777狠狠 | kk4444在线影视播放 | brazzersxxx欧美| 国产亚洲毛片在线 | 国产99久久久国产精品成人 | 午夜国产精品影院在线观看 | 国产精品男人的天堂 | 天天天天天干 | 爽好紧别夹宝贝叫大声点护士 | 亚洲午夜久久久久久91 | 女人张开腿让男人桶视频免费大全 | 狠狠色婷婷日日综合五月 | 狠狠色婷婷丁香六月 | 免费网站视频 | 极品美女穴 | 调教小荡娃h | 美女污视频 | 亚洲是图你懂的 | 欧美s级人做人爱c视频 | 98在线视频噜噜噜国产 | 卫生间被教官做好爽HH视频 | 成人免费公开视频 |