亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

java顯示目錄文件列表和刪除目錄功能

2024-07-13 10:15:38
字體:
來源:轉載
供稿:網友

以d:/a目錄為例,假設D:/a目錄內的結構如下:

d:/a|--a.sql|--back.log|--b| |--e| | |--1.txt| | |--2.txt| | `--3.txt| `--f| |--4.txt| |--5.txt| `--6.txt|--c| |--e| | |--ace1.txt| | |--ace2.txt| | `--ace3.txt| `--f| |--4.txt| |--5.txt| `--6.txt`--d |--a.java |--abc (1).txt |--abc (2).txt |--abc (3).txt |--b.java `--c.java

4.1 示例1:列出整個目錄中的文件(遞歸)

思路:

1.遍歷目錄d:/a。

2.每遍歷到d:/a中的一個目錄就遍歷這個子目錄。因此需要判斷每個遍歷到的元素是否是目錄。

以下是從普通代碼到遞歸代碼前的部分代碼:

File dir = new File("d:/a");File[] file_list = dir.listFiles();for (File list : file_list) { if (list.isDirectory()) { File dir_1 = list.listFiles(); //此處開始代碼重復,且邏輯上可能會無限遞歸下去 if (dir_1.isDirectory()) {  .... } } else { System.out.println(list.getAbsolutePath()); }}

對重復的代碼部分進行封裝,于是使用遞歸方法,既封裝代碼,又解決無限遞歸問題。最終代碼如下:

import java.io.*;public class ListAllFiles { public static void main(String[] args) { File dir = new File("d:/a"); System.out.println("dir------>"+dir.getAbsolutePath()); listAll(dir); } public static void listAll(File dir) { File[] file_list = dir.listFiles(); for (File file : file_list) {  if (file.isDirectory()) {  System.out.println("dir------>"+file.getAbsolutePath());  listAll(file);  } else {  System.out.println("file------>"+file.getAbsolutePath());  } } }}

4.2 示例2:列出整個目錄中的文件(隊列)

思路:

1.遍歷給定目錄。將遍歷到的目錄名放進集合中。

2.對集合中的每個目錄元素進行遍歷,并將遍歷到的子目錄添加到集合中,最后每遍歷結束一個目錄就從集合中刪除它。

3.這樣一來,只要發現目錄,就會一直遍歷下去,直到某個目錄整個都遍歷完,開始遍歷下一個同級目錄。

需要考慮的是使用什么樣的集合。首先集合內目錄元素無需排序、不同目錄內子目錄名可能重復,因此使用List集合而非set集合,又因為頻繁增刪元素,因此使用linkedlist而非arraylist集合,linkedlist集合最突出的特性就是FIFO隊列。

相比于遞歸遍歷,使用隊列遍歷目錄的好處是元素放在容器中,它們都在堆內存中,不容易內存溢出。

import java.util.*;import java.io.*;public class ListAllFiles2 { public static void main(String[] args) { File dir = new File("d:/a"); Queue<File> file_queue = new Queue<File>(); //構建一個隊列 File[] list = dir.listFiles(); for (File file : list) {  //遍歷頂級目錄  if(file.isDirectory()) {  System.out.println("dir------>"+file.getAbsolutePath());  file_queue.add(file);  } else {  System.out.println("file------>"+file.getAbsolutePath());  } } while (!file_queue.isNull()) { //從二級子目錄開始,逐層遍歷  File subdirs = file_queue.get(); //先取得二級子目錄名稱  File[] subFiles = subdirs.listFiles();   for (File subdir : subFiles) { //遍歷每個下一級子目錄  if(subdir.isDirectory()) {   System.out.println("dir------>"+subdir.getAbsolutePath());   file_queue.add(subdir); //如果內層還有子目錄,添加到隊列中  } else {   System.out.println("file------>"+subdir.getAbsolutePath());  }  } } }}class Queue<E> { private LinkedList<E> linkedlist; Queue() { linkedlist = new LinkedList<E>(); } public void add(E e) { linkedlist.addFirst(e); //先進 } public E get() { return linkedlist.removeLast(); //先出 } public boolean isNull() { return linkedlist.isEmpty(); }}

4.3 示例3:樹形結構顯示整個目錄中的文件(遞歸)

思路:

1.先列出一級目錄和文件。

2.如果是目錄,則加一個構成樹形的前綴符號。然后再遍歷這個目錄,在此需要遞歸遍歷。

import java.io.*;public class TreeFiles { public static void main(String[] args) { File dir = new File("d:/a"); System.out.println(dir.getName()); listChilds(dir,1); } public static void listChilds(File f,int level) { String prefix = ""; for(int i=0;i<level;i++) {  prefix = "| " + prefix; } File[] files = f.listFiles(); for (File file : files) {  if(file.isDirectory()) {  System.out.println(prefix + file.getName());  listChilds(file,level+1);  } else {  System.out.println(prefix + file.getName());  } } }}

結果如下:

a| a.sql| b| | e| | | 1.txt| | | 2.txt| | | 3.txt| | f| | | 4.txt| | | 5.txt| | | 6.txt| back.log| c| | e| | | ace1.txt| | | ace2.txt| | | ace3.txt| | f| | | 4.txt| | | 5.txt| | | 6.txt| d| | a.java| | abc (1).txt| | abc (2).txt| | abc (3).txt| | b.java| | c.java

4.4 刪除整個目錄

import java.io.*;public class FileDelete { public static void main(String[] args) { File file = new File("d:/a"); rm(file); } public static void rm(File f) { if(!f.exists()){  System.out.println("file not found!");  return; } else if(f.isFile()) {  f.delete();  return; } File[] dir = f.listFiles(); for(File file : dir) {  rm(file); } f.delete(); }}

總結

以上所述是小編給大家介紹的java顯示目錄文件列表和刪除目錄,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品video| 欧美激情一区二区三区久久久| 国产精品日韩在线一区| 欧美成人免费一级人片100| 国产91精品久久久| 日韩欧美一区二区三区久久| 国产欧美在线视频| 欧美成人午夜激情| 成人免费福利在线| 精品二区三区线观看| 日韩动漫免费观看电视剧高清| 欧美国产亚洲精品久久久8v| 日韩在线观看av| 国内精品久久久久伊人av| 日韩欧美高清视频| 久久免费视频网站| 1769国产精品| 欧美视频裸体精品| 亚洲欧美一区二区三区久久| 国产精品一区久久久| 成人性生交大片免费观看嘿嘿视频| 国产日韩欧美在线观看| 91理论片午午论夜理片久久| 国产精品激情自拍| 国产精品91视频| 日韩理论片久久| 国产精品96久久久久久| 97视频在线观看成人| 欧美日韩在线视频一区二区| 宅男66日本亚洲欧美视频| 国产福利视频一区| 国产午夜一区二区| 欧美日韩国产精品一区二区不卡中文| 久久久女女女女999久久| 国产欧美精品va在线观看| 欧美精品午夜视频| 亚洲欧美日韩精品久久| 国产美女久久精品香蕉69| 欧美日韩一区二区免费在线观看| 日本久久精品视频| 国产精品视频区| 日韩乱码在线视频| 亚洲一区二区免费| 亚洲免费人成在线视频观看| 久久久精品免费| 国产精品免费福利| 91国语精品自产拍在线观看性色| 久久久精品电影| 久热国产精品视频| 欧美日韩另类视频| 久久久精品一区二区三区| 91免费国产视频| 亚洲二区在线播放视频| 另类专区欧美制服同性| 国产色综合天天综合网| 国产不卡精品视男人的天堂| 欧美在线观看网站| 久久成人国产精品| 欧美精品xxx| 亚洲黄色有码视频| 国产精品永久免费| 亚洲国产天堂久久国产91| 日产精品99久久久久久| 亚洲人av在线影院| 国产精品日韩精品| 国产做受69高潮| 久久香蕉国产线看观看av| 欧美激情一区二区三区高清视频| 久久综合伊人77777尤物| 日韩亚洲精品视频| 亚洲高清久久网| 日韩av在线高清| 国产精品视频自拍| 国产一区二区三区在线看| 日韩欧美第一页| 久久久女人电视剧免费播放下载| 久久亚洲成人精品| 最近2019中文字幕大全第二页| 久久久国产一区| 91精品国产高清久久久久久久久| 亚洲欧美制服综合另类| 91在线中文字幕| 亚洲精品久久久久久久久久久| 亚洲视频欧美视频| 久久久久久这里只有精品| 亚洲香蕉伊综合在人在线视看| 国产高清在线不卡| 97不卡在线视频| 蜜月aⅴ免费一区二区三区| 国产精品免费小视频| 福利一区福利二区微拍刺激| 欧美另类极品videosbest最新版本| 久久久亚洲网站| www.日韩av.com| 一道本无吗dⅴd在线播放一区| 成人午夜小视频| 国内外成人免费激情在线视频| 91免费观看网站| 91av在线播放视频| 91av在线免费观看| 韩日欧美一区二区| 欧美性猛交xxxx黑人猛交| 青青久久av北条麻妃海外网| 久久久亚洲成人| 久久韩国免费视频| 成人激情视频在线播放| 日本精品视频在线播放| 日韩久久精品电影| 欧美色欧美亚洲高清在线视频| 欧美有码在线观看| 久久777国产线看观看精品| 一区二区日韩精品| 色偷偷av一区二区三区乱| 日韩在线观看高清| 另类视频在线观看| 亚洲综合在线播放| 国外成人在线播放| 午夜精品福利在线观看| 日韩在线精品一区| 91国偷自产一区二区三区的观看方式| 国产一区二区三区在线观看视频| 亚洲午夜精品视频| 国产盗摄xxxx视频xxx69| 日韩美女av在线| 日本三级久久久| 国产精品久久不能| 欧美成人免费小视频| 亚洲欧洲日本专区| 亚洲国产99精品国自产| 中文综合在线观看| 亚洲xxxx妇黄裸体| 欧美日韩在线一区| 亚洲视频在线免费看| 国产在线一区二区三区| 777午夜精品福利在线观看| 久久成人国产精品| 中文字幕亚洲第一| 国产精品美女主播| 久久久天堂国产精品女人| 久热精品视频在线免费观看| 国产日韩欧美一二三区| 欧美国产欧美亚洲国产日韩mv天天看完整| 精品亚洲va在线va天堂资源站| 欧美日韩美女在线| 日韩小视频在线| 国产精品自产拍高潮在线观看| 欧美电影电视剧在线观看| 91国产精品电影| 亚洲a级在线观看| 一本一道久久a久久精品逆3p| 亚洲欧洲国产伦综合| 欧美刺激性大交免费视频| 亚洲国产精品久久久久| 在线午夜精品自拍| 国产精品成人观看视频国产奇米| 欧美又大粗又爽又黄大片视频| 色爱av美腿丝袜综合粉嫩av| 疯狂蹂躏欧美一区二区精品| 国产精品中文久久久久久久| 亚洲激情国产精品| 日韩国产在线看| 日本不卡视频在线播放| 欧美肥臀大乳一区二区免费视频| 亚洲成人网av|