导航:首页 > 编程语言 > 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获取文件目录的所有文件相关的资料

热点内容
python组合数据类型 浏览:658
空气压缩机站 浏览:628
什么是企业app 浏览:766
cp1l编程电缆 浏览:131
ev3编程模块 浏览:271
程序员脖子痛如何缓解 浏览:531
java加密aes对称加密算法 浏览:599
格式工厂视频压缩方法 浏览:478
编译后的函数和原始函数如何对应 浏览:623
阐述邮件加密解密过程 浏览:402
敲沙子声控解压 浏览:57
计算机教室用什么服务器 浏览:803
华为畅享9怎么设置短信加密 浏览:287
中国现代编译器 浏览:852
如何得到app专栏 浏览:453
魔兽世界日本服务器什么职业多 浏览:729
表格加密怎么设置只读模式打开 浏览:884
哪个app可以不用花呗分期 浏览:861
SSL是对称加密吗 浏览:46
捷途app钥匙怎么用 浏览:960