本文目录一览:
在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.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
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