導航:首頁 > 編程語言 > java遍歷所有文件夾

java遍歷所有文件夾

發布時間:2022-09-18 23:31:12

java遍歷文件夾

主要應用遞歸演算法

/**
*
*/
package com.dianziermu.io;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
* 遍歷文件夾及其下面的所有文件夾,遞歸
*
* @author 點子二木
* @date 2009-6-10
* @version 1.0
*/
@SuppressWarnings("unchecked")
public class FolderIO {

static List<File> gblFoldList = new ArrayList();

/**
* @param args
*/
public static void main(String[] args) {
String path = "c:\\Program Files";// 將要搜索目錄路徑
System.out.println("獲取"+path + "目錄下所有文件夾,正在載入......");
readFolder(path);

printFolder();
}

/**
* 獲取文件對象
*
* @param path
*/
private static void readFolder(String path) {

File dir = new File(path);// 建立代表Sub目錄的File對象,並得到它的一個引用
if (dir.exists()) {// 檢查目錄是否存在
File[] dirList = dir.listFiles();// 獲取該目錄下所有文件和文件夾

for (int index = 0; index < dirList.length; index++) {
if (dirList[index].isDirectory()) {// 如果是文件夾
// System.out.println(dirList[index]);
gblFoldList.add(dirList[index]);
readFolder(dirList[index].getPath());// 注意:此處遞歸
}
}
} else {
System.out.println("該文件夾不存在");
}
}

/**
* 列印文件夾對象
*/
private static void printFolder() {
for (int index = 0; index < gblFoldList.size(); index++) {
System.out.println(gblFoldList.get(index));
}

}

}

② java遍歷文件夾下所有文件包括子目錄及文件放到json中後台代碼

import java.io.File;
import net.sf.json.JSON;
import net.sf.json.JSONObject;

public class fileTest {
public static void main(String[] args) throws Exception {

File file= new File("你文件夾的路徑");
showAllFiles(file);
}

final static void showAllFile(File dir) throws Exception{
File[] fs = dir.listFiles();
for(int i=0; i<fs.length; i++){
System.out.println(fs[i].getAbsolutePath());
if(fs[i].isDirectory()){
try{

JSON json2 = net.sf.json.JSONSerializer.toJSON(fs[i]);
json.element("item", json2);
showAllFile(fs[i]);
}catch(Exception e){}
}
}
}
}

③ java中遍歷文件夾

import java.io.File;
public class Test {
public static void main(String[] args) throws Exception {
//遞歸顯示C盤下所有文件夾及其中文件
File root = new File("c:");
showAllFiles(root);
}

final static void showAllFiles(File dir) throws Exception{
File[] fs = dir.listFiles();
for(int i=0; i<fs.length; i++){
System.out.println(fs[i].getAbsolutePath());
if(fs[i].isDirectory()){
try{
showAllFiles(fs[i]);
}catch(Exception e){}
}
}
}
}
打字不易,如滿意,望採納。

④ JAVA遍歷一個文件夾中的所有文件---(遞歸)

public void traverseFolder2(String path) {

File file = new File(path);

if (file.exists()) {

File[] files = file.listFiles();

if (null == files || files.length == 0) {

System.out.println("文件夾是空的!");

return;

} else {

for (File file2 : files) {

if (file2.isDirectory()) {

System.out.println("文件夾:" + file2.getAbsolutePath());

traverseFolder2(file2.getAbsolutePath());

} else {

System.out.println("文件:" + file2.getAbsolutePath());

}

}

}

} else {

System.out.println("文件不存在!");

}

}

(4)java遍歷所有文件夾擴展閱讀

public void traverseFolder1(String path) {

int fileNum = 0, folderNum = 0;

File file = new File(path);

if (file.exists()) {

LinkedList<File> list = new LinkedList<File>();

File[] files = file.listFiles();

for (File file2 : files) {

if (file2.isDirectory()) {

System.out.println("文件夾:" + file2.getAbsolutePath());

list.add(file2);

foldeNum++;

} else {

System.out.println("文件:" + file2.getAbsolutePath());

fileNum++;

}

}

File temp_file;

while (!list.isEmpty()) {

temp_file = list.removeFirst();


files = temp_file.listFiles();

for (File file2 : files) {

if (file2.isDirectory()) {

System.out.println("文件夾:" + file2.getAbsolutePath());

list.add(file2);

folderNum++;

} else {

System.out.println("文件:" + file2.getAbsolutePath());

fileNum++;

}

}

}

} else {

System.out.println("文件不存在!");

}

System.out.println("文件夾共有:" + folderNum + ",文件共有:" + fileNum);

}

⑤ java 怎麼遍歷 文件夾下的 文件

A.不使用遞歸:

import java.io.File;

import java.util.LinkedList;

public class FileSystem {

public static void main(String[] args) {

long a = System.currentTimeMillis();

LinkedList list = new LinkedList();

File dir = new File("c:\\java\\");

File file[] = dir.listFiles();

for (int i = 0; i < file.length; i++) {

if (file[i].isDirectory())

list.add(file[i]);

else

System.out.println(file[i].getAbsolutePath());

}

File tmp;

while (!list.isEmpty()) {

tmp = list.removeFirst();

if (tmp.isDirectory()) {

file = tmp.listFiles();

if (file == null)

continue;

for (int i = 0; i < file.length; i++) {

if (file[i].isDirectory())

list.add(file[i]);

else

System.out.println(file[i].getAbsolutePath());

}

} else {

System.out.println(tmp.getAbsolutePath());

}

}

System.out.println(System.currentTimeMillis() - a);

}

}

⑥ java怎麼遍歷一個盤下的所有文件

用遞歸演算法,遞歸可以理解成自己調用自己,但要有終止條件

首先是判斷這個是文件還是文件夾。文件的話就處理文件;文件夾的話,列出裡面的文件,再對每一個文件做同樣的判斷處理

下面是刪除一個文件夾(改成列出所有文件的話,你把刪除操作改成放入集合操作),所有刪除都是只能刪除一個文件或者是空文件夾,所以遇到文件夾就得把裡面的文件全部刪除

	privatestaticvoiddeleteFile(Filefile){
if(!file.exists())
return;
System.out.print("刪除===");
if(file.isFile()){
System.out.println("文件:"+file);
file.delete();
}else{
System.out.println("文件夾:"+file);
for(Filef:file.listFiles()){
deleteFile(f);
}
file.delete();
}
}

同理(Node是自己定義的類,主要包含了name(String),children (List<Node>)這兩個屬性來表達層級):

遍歷了這個文件夾之後返回這個文件夾的Node作為上一個文件加的children之一,這就把文件夾的層級結構列出來了,當然你也可以用Map來存儲這些數據

/**
*列出文件目錄結構
*
*@paramfolder
*@paramfnf
*@return
*/
privatestaticNodelsFiles(Filefolder){
Noden=newNode();
n.setName(folder.getName());
n.setPath(folder.getAbsolutePath());
if(folder.isFile()){
n.setLeaf(true);
n.setSize(folder.length());
}else{
n.setLeaf(false);
File[]folders=folder.listFiles();//列出文件夾底下的文件
for(Filefile:folders){//遍歷每個文件做相同操作
Nodecn=lsFiles(file);
n.getChildren().add(cn);
n.setSize(n.getSize()+cn.getSize());
}
}

returnn;
}

下面是不分層次結構來列出所有文件(純手寫,可能有語法錯誤)

/**
*列出文件路徑
*
*@paramfolder
*@paramfnf
*@return
*/
privatestaticList<String>lsFiles(Filefolder){
List<String>l=newArrayList<String>();
l.add(folder.getAbsolutePath());
if(folder.isFile()){
//處理file
}else{
File[]folders=folder.listFiles();
for(Filefile:folders){
l.addAll(lsFiles(file));
}
}
returnl;
}

效果

⑦ JAVA7如何遍歷一個目錄下的所有文件,如何知

1.遍歷本目錄下所有的文件(不包括目錄的目錄里的文件)
import java.io.File;public class main { public static void main(String[] args) { String path = "D:\\JAVA"; //要遍歷的路徑 File file = new File(path); //獲取其file對象 File[] fs = file.listFiles(); //遍歷path下的文件和目錄,放在File數組中 for(File f:fs){ //遍歷File[]數組 if(!f.isDirectory()) //若非目錄(即文件),則列印 System.out.println(f); } }}

運行結果:
列印出 D:/JAVA下的全部文件(包括D:/JAVA下的目錄下的文件)
1.遍歷本目錄下所有的文件(包括目錄的目錄里的文件)

import java.io.File;import java.io.FileFilter;public class FileText { public static void main(String[] args) { String path = "D:\\JAVA"; //要遍歷的路徑 File file = new File(path); //獲取其file對象 func(file); } private static void func(File file){ File[] fs = file.listFiles(); for(File f:fs){ if(f.isDirectory()) //若是目錄,則遞歸列印該目錄下的文件 func(f); if(f.isFile()) //若是文件,直接列印 System.out.println(f); } }}

列印結果:

列印所有文件

⑧ java 怎麼遍歷 文件夾下的 文件

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class Traverse {
/** List游標 */
private static Integer sign = 0;
/** 初始路徑 */
private static String initPath = "E:\\";
/** 文件夾路徑 */
public static List<String> filePath = new ArrayList<String>();

public static void main(String[] args) {

/** 開始遍歷節點 */
System.out.println("---star---");
filePath.add(initPath);// 將首目錄放入遍歷隊列
while (sign < filePath.size()) {
getFilePath();
sign++;
}
System.out.println("---end---");
}

/**
* <p>
* 獲取所有節點路徑
*
* @return void
*/
public static void getFilePath() {
try {
File file = new File(filePath.get(sign));
File[] files = file.listFiles();
for (int i = 0; i < files.length; i++) {
boolean isFile = false;
isFile = files[i].isFile();
if (!isFile) {
filePath.add(files[i].getAbsolutePath());
System.out.println(files[i].getAbsolutePath());
}
}
} catch (Exception e) {

}
}
}
這個是遍歷給定目錄下的所有子目錄,並存放在list中,如果你要遍歷文件就從list中逐個取目錄再遍歷判斷是不是文件就行了!

⑨ 用java怎麼遍歷磁碟上的所有文件

首先,我們需要獲取磁碟中所有的盤符路徑:jdk6中一個方法搞定:

File[]roots=File.listRoots();

然後,通過每個路徑來進行向下遍歷,上代碼(手敲,各種小錯誤別怪我,看思路就好):

importjava.io.File;
/**
由於本人使用了junit,請自行添加main方法測試
*/
publicclassTest{

@org.junit.Test
publicvoidtestfiles(){

File[]roots=File.listRoots();
for(Filef:roots){
System.out.println(f.getAbsolutePath());
}
listFiles(roots);

}

publicvoidlistFiles(File[]files){

if(files==null||files.length==0)return;
for(Filef:files){
if(f.isDirectory()){
System.out.println(f.getAbsolutePath());
listFiles(f.listFiles());
}else{
System.out.println(" |"+f.getName());
}
}

}


}

⑩ 在java中如何遍歷某個路徑下的所有文件夾和文件

首先,我們先來遍歷一下D盤根目錄下所有的子文件:public
static
void
fileList()
{
File
file=new
File("d:/");
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
System.out.println(f.getPath());
}
}
}對此,我們肯定不滿足,我們需要遍歷D盤下所有的文件和文件夾,而不是根目錄下的文件夾,這個時候我們需要使用到遞歸:public
static
void
fileList(File
file)
{
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
System.out.println(f.getPath());
fileList(f);
}
}
}然後在主函數中調用:public
static
void
main(String[]
args)
{
File
file=new
File("d:/");
fileList(file);
}結果是不是能令你滿意呢?顯然,輸出的都是全路徑,我們可以對我們的遞歸函數做如下改進:
public
static
void
fileList(File
file,int
node)
{
node++;
File[]
files
=
file.listFiles();
if
(files
!=
null)
{
for
(File
f
:
files)
{
for(int
i=0;i<node;i++){
if(i==node-1){
System.out.print("├");
}
else{
System.out.print("
");
}
}
System.out.println(f.getName());
fileList(f,node);
}
}
}然後再次在主函數中調用:public
static
void
main(String[]
args)
{
File
file=new
File("d:/");
fileList(file,0);
}得到的結果是一個類似樹狀的結構,如果你對此還不滿意,可以嘗試給JTree上添加節點,可以做到和資源管理器中一樣的結構。

閱讀全文

與java遍歷所有文件夾相關的資料

熱點內容
安卓如何查看異常重啟 瀏覽:715
解壓音樂排名 瀏覽:383
安卓手機瀏覽器怎麼掃二維碼 瀏覽:715
通達信成本均線源碼 瀏覽:614
可以下載的解壓音頻 瀏覽:564
海賊王怎麼換伺服器 瀏覽:318
計算機上的共享文件夾映射 瀏覽:940
榮耀安裝包在文件夾哪裡 瀏覽:196
機票php源碼 瀏覽:231
linux共享mac 瀏覽:923
中國沒有國外的伺服器地址 瀏覽:759
為什麼退款伺服器連接錯誤 瀏覽:557
android簡訊存儲位置 瀏覽:972
unix網路編程卷4 瀏覽:808
找靚機app下單什麼時候發貨 瀏覽:413
android一個應用兩個進程 瀏覽:803
linux硬碟復制 瀏覽:808
php圖片伺服器搭建 瀏覽:801
下載壓縮文件怎麼打開 瀏覽:194
新建文件夾叫什麼名字 瀏覽:567