本文目錄一覽:
- 1、用java怎麼遍歷磁碟上的所有文件
- 2、在java中如何遍歷某個路徑下的所有文件夾和文件
- 3、利用Java遍歷磁碟的方法
- 4、JAVA7如何遍歷一個目錄下的所有文件,如何知
- 5、JAVA遍歷一個文件夾中的所有文件—(遞歸)
- 6、java遍歷指定文件夾下的所有子文件夾怎麼操作?
用java怎麼遍歷磁碟上的所有文件
首先,我們需要獲取磁碟中所有的盤符路徑:jdk6中一個方法搞定:
File [] roots = File.listRoots();
然後,通過每個路徑來進行向下遍歷,上代碼(手敲,各種小錯誤別怪我,看思路就好):
import java.io.File;
/**
由於本人使用了junit,請自行添加main方法測試
*/
public class Test{
@org.junit.Test
public void testfiles(){
File [] roots = File.listRoots();
for(File f:roots){
System.out.println(f.getAbsolutePath());
}
listFiles(roots);
}
public void listFiles(File[] files){
if(files==null||files.length==0)return;
for(File f : files){
if(f.isDirectory()){
System.out.println(f.getAbsolutePath());
listFiles(f.listFiles());
}else{
System.out.println(“\t|”+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;inode;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遍歷磁碟的方法
import java.io.*;
public class Test {
public static void main(String args[])
{
Test t =new Test();
t.traversal(“c:/”);
}
public void traversal(String path) {
File f = new File(path);
if (f.isDirectory()) { //如果是文件夾,則遞歸遍歷
// 取文件夾下所有文件
File[] array = f.listFiles();
for (int i=0;iarray.length;i++) {
traversal(array[i].getPath());
}
} else {
//如果是文件輸出文件名,這裡可以做刪除等操作
System.out.println(f.getName());
}
}
}
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遍歷一個文件夾中的所有文件—(遞歸)
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(“文件不存在!”);
}
}
擴展資料
public void traverseFolder1(String path) {
int fileNum = 0, folderNum = 0;
File file = new File(path);
if (file.exists()) {
LinkedListFile list = new LinkedListFile();
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
java遍歷指定文件夾下的所有子文件夾怎麼操作?
import java.io.File ;\x0d\x0aimport java.io.IOException ;\x0d\x0apublic class FileDemo11{\x0d\x0apublic static void main(String args[]){\x0d\x0aFile my = new File(“d:” + File.separator) ;// 操作路徑,可以有外部參數決定的\x0d\x0aprint(my) ;\x0d\x0a}\x0d\x0apublic static void print(File file){// 遞歸調用\x0d\x0aif(file!=null){// 判斷對象是否為空\x0d\x0aif(file.isDirectory()){// 如果是目錄\x0d\x0aFile f[] = file.listFiles() ;// 列出全部的文件\x0d\x0aif(f!=null){// 判斷此目錄能否列出\x0d\x0afor(int i=0;i
回答於 2022-11-15
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/155474.html