當前位置:首頁 » 編程語言 » java遍歷文件夾下的文件

java遍歷文件夾下的文件

發布時間: 2023-09-20 02:57:06

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;
}

效果

⑵ 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遍歷文件夾

主要應用遞歸演算法

/**
*
*/
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 怎麼遍歷 文件夾下的 文件

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遍歷某個文件夾統計出有多少個java文件和jsp文件怎麼寫

publicstaticvoidmain(String[]args){
intjsp=0;//定義JSP
intjava=0;//定義JAVA
FilesrcFile=newFile("d:/demo");//指定路徑
booleanbFile=srcFile.exists();
if(!bFile||!srcFile.isDirectory()||!srcFile.canRead()){
try{
srcFile.createNewFile();
}catch(IOExceptione){
e.printStackTrace();
}
}else{
File[]file=srcFile.listFiles();
for(inti=0;i<file.length;i++){
if(file[i].getAbsolutePath().indexOf(".jsp")>-1)
jsp++;
if(file[i].getAbsolutePath().indexOf(".java")>-1)
java++;
}
System.out.println("JSP文件總數="+jsp);
System.out.println("JAVA文件總數"+java);
}
}

熱點內容
android對象轉json 發布:2024-07-27 09:50:15 瀏覽:181
安卓平板有什麼可以畫對稱的 發布:2024-07-27 09:36:03 瀏覽:132
羊創意腳本 發布:2024-07-27 09:29:30 瀏覽:894
榮耀v20升級存儲 發布:2024-07-27 09:20:19 瀏覽:485
安卓用什麼和電腦傳圖片 發布:2024-07-27 09:02:07 瀏覽:288
存儲過程就是 發布:2024-07-27 08:56:51 瀏覽:131
c語言高級試題 發布:2024-07-27 08:48:30 瀏覽:282
ip伺服器世界上有幾台 發布:2024-07-27 08:46:18 瀏覽:394
金立手機怎麼清理緩存 發布:2024-07-27 08:38:50 瀏覽:311
iphone文件夾不顯示 發布:2024-07-27 08:18:05 瀏覽:774