導航:首頁 > 編程語言 > java獲取文件目錄的所有文件

java獲取文件目錄的所有文件

發布時間:2025-02-18 12:40:28

java 找出某一個文件夾下的所有文件

要養成查看API文檔的好習慣。File對象的list()方法能夠返回實例化File時,傳入的字元串類型的路徑名稱,此方法返回此路徑下的所有文件及目錄,不帶路徑。而listFiles()方法則返回實例化File時,傳入的抽象字元串類型的路徑名稱,此方法返回此路徑下的所有文件及目錄,含有抽象路徑。

通常情況下,當我們調用System.out.println(Object obj)方法查看API文檔時,會發現System.out返回一個標準的PrintWriter,此PrintWriter是OutputStream的子類。當調用println()方法輸出對象時,實際上是調用了對象的toString()方法。如果對象沒有重寫toString()方法,則直接輸出對象的堆內存地址。

查看API文檔可以得知,File類的toString()方法會返回實例化File對象時傳入的抽象路徑。如果你在test方法中,實例化File對象時使用的是list()方法得到的路徑,那麼此時該抽象路徑本身就只含有文件名而沒有路徑。而另一個方法則使用listFiles()方法,獲取到的都是含有抽象路徑的文件列表。

因此,當你輸出這些文件時,出現的情況就是由於路徑信息的不同導致的。在使用list()方法時,沒有路徑信息,因此直接顯示文件名;而在使用listFiles()方法時,包含路徑信息,因此顯示完整的文件路徑。

綜上所述,理解API文檔對於正確使用文件操作方法至關重要。確保你了解每個方法的返回值及其含義,可以避免很多不必要的錯誤。

② java 循環讀取文件夾裡面的文件

JAVA 遍歷文件夾下的所有文件(遞歸調用和非遞歸調用)
1.不使用遞歸的方法調用。
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);
fileNum++;
} else {
System.out.println("文件:" + file2.getAbsolutePath());
folderNum++;
}
}
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);
fileNum++;
} else {
System.out.println("文件:" + file2.getAbsolutePath());
folderNum++;
}
}
}
} else {
System.out.println("文件不存在!");
}
System.out.println("文件夾共有:" + folderNum + ",文件共有:" + fileNum);

}
2.使用遞歸的方法調用
public static List<File> getFileList(String strPath) {
File dir = new File(strPath);
File[] files = dir.listFiles(); // 該文件目錄下文件全部放入數組
if (files != null) {
for (int i = 0; i < files.length; i++) {
String fileName = files[i].getName();
if (files[i].isDirectory()) { // 判斷是文件還是文件夾
getFileList(files[i].getAbsolutePath()); // 獲取文件絕對路徑
} else if (fileName.endsWith("avi")) { // 判斷文件名是否以.avi結尾
String strFileName = files[i].getAbsolutePath();
System.out.println("---" + strFileName);
filelist.add(files[i]);
} else {
continue;
}
}

}
return filelist;
}

③ java怎麼獲取一個目錄下的所有文件名

獲取一個目錄下的所有文件和目錄方法:

importjava.io.File;

publicclassFileTest{

publicstaticvoidmain(String[]args){
/**
*將目標目錄封裝成File對象。
*/
Filedir=newFile("/Users/zym/Desktop/Mac應用程序");

/**
*獲取目錄下的所有文件和文件夾
*/
String[]names=dir.list();

for(Stringname:names){
System.out.println(name);
}
}

}

通過文件過濾器獲取某個目錄下的文件,例如所有的 .txt、.doc文件。

過濾器:

importjava.io.File;
importjava.io.FilenameFilter;

{

@Override
publicbooleanaccept(Filedir,Stringname){
returnname.endsWith(".doc");
}

}

獲取某個目錄下的按照過濾器規則的所有文件:

importjava.io.File;

publicclassFileTest{

publicstaticvoidmain(String[]args){
/**
*將目標目錄封裝成File對象。
*/
Filedir=newFile("/Users/zym/Desktop/Mac應用程序");

/**
*通過過濾器獲取目錄下的所有的.doc文件
*/
String[]names=dir.list(newFilterByDoc());

for(Stringname:names){
System.out.println(name);
}
}

}

希望能對您有所幫助!

④ java怎麼循環讀取目錄下的文件內容

在Java中,遍歷文件夾下的所有文件可以採用遞歸調用和非遞歸調用兩種方法。這里提供一個非遞歸調用的例子:

首先定義一個函數traverseFolder1,該函數接受一個字元串類型的參數path,表示待遍歷的文件夾路徑。函數內部定義了一個鏈表list,用於存儲待遍歷的文件夾。接著通過判斷文件夾是否存在,獲取其下的所有文件和子文件夾。

然後使用while循環和鏈表的removeFirst方法,將鏈表中的文件夾逐個取出,繼續獲取其下的文件和子文件夾,直到鏈表為空。

如果使用遞歸方法遍歷文件夾,可以定義一個函數getFileList,該函數接受一個字元串類型的參數strPath,表示待遍歷的文件夾路徑。首先獲取該文件夾下的所有文件和子文件夾。

通過循環遍歷數組files,如果當前文件是文件夾,則調用自身進行遞歸遍歷;如果當前文件滿足特定條件(例如文件名為avi格式),則將文件路徑加入filelist集合。

兩種方法各有優劣,非遞歸方法避免了遞歸調用可能帶來的棧溢出問題,但代碼復雜度相對較高。而遞歸方法簡潔易懂,但可能遇到棧溢出的問題。

這兩種方法都是Java中常用的遍歷文件夾的方法,適用於不同場景。在實際開發中,可以根據具體需求選擇合適的方法實現。

⑤ java怎樣獲得某個目錄下所有文件的文件名

如下代碼使用遞歸演算法遍歷某個目錄下的所有文件,並輸出文件名

importjava.io.File;
importjava.util.ArrayList;

publicclassFileTest{
privatestaticArrayList<String>filelist=newArrayList<String>();

publicstaticvoidmain(String[]args)throwsException
{
StringfilePath="E://Struts2";
getFiles(filePath);
}


/*
*通過遞歸得到某一路徑下所有的目錄及其文件
*/
staticvoidgetFiles(StringfilePath)
{
Fileroot=newFile(filePath);
File[]files=root.listFiles();
for(Filefile:files)
{
if(file.isDirectory())
{
/*
*遞歸調用
*/
getFiles(file.getAbsolutePath());
filelist.add(file.getAbsolutePath());
System.out.println("顯示"+filePath+"下所有子目錄及其文件"+file.getAbsolutePath());
}else{
System.out.println("顯示"+filePath+"下所有子目錄"+file.getAbsolutePath());
}
}
}
}
閱讀全文

與java獲取文件目錄的所有文件相關的資料

熱點內容
帝特串口伺服器性能怎麼樣 瀏覽:801
以前有一個賣鞋的app叫什麼 瀏覽:205
程序員刪除資料庫被判7年 瀏覽:235
電極編程什麼叫火花位 瀏覽:556
籌碼主升雙副圖指標公式源碼 瀏覽:817
modelsim創建文件夾空 瀏覽:180
世界十大編程語言 瀏覽:801
雲之道知識付費182源碼 瀏覽:202
全加密電梯卡讀取失敗 瀏覽:299
杭州浙冷鏈溯源碼正確操作 瀏覽:811
web伺服器如何關閉 瀏覽:661
編程源碼大全視頻 瀏覽:775
解壓備案人不來 瀏覽:862
單片機寫入ram 瀏覽:703
安卓放音樂怎麼設置 瀏覽:129
通達信水手突破公式源碼主圖 瀏覽:691
一個程序員是怎樣的 瀏覽:675
ftp伺服器如何關閉下載文件 瀏覽:748
知識型app是什麼 瀏覽:840
java是否是圖片 瀏覽:797