java 循环读取文件夹里面的文件

在我的D盘下,有一个文件夹aa,在里面有10张图片,如何循环将这10张图片的路径读取出来,例如"D:/aa/1.png","D:/aa/2.png","D:/aa/3.p... 在我的D盘下,有一个文件夹aa,在里面有10张图片,如何循环将这10张图片的路径读取出来,例如"D:/aa/1.png","D:/aa/2.png","D:/aa/3.png" ... ...。请各位大侠帮帮忙,谢谢! 展开
 我来答
pieryon
推荐于2016-10-03 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166869
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
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;
}
阿B牌儿洗衣粉
2011-11-22 · TA获得超过643个赞
知道小有建树答主
回答量:264
采纳率:0%
帮助的人:324万
展开全部
public ArrayList<String> list = new ArrayList<String>(0);//用arraylist保存扫描到的路径
public void Scan(String path) {
File file = new File(path);
File[] files = file.listFiles();
String[] filenames = file.list();
if (filenames == null)
return;
for (int i = 0; i < filenames.length; i++) {
if (files[i].isFile()) {
if (files[i].getName().endsWith(“png”))
list.add(files[i].getPath());
} else if (files[i].isDirectory()) {
Scan(files[i].getPath());
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bj_liuhuibin
推荐于2016-08-17 · TA获得超过131个赞
知道答主
回答量:92
采纳率:0%
帮助的人:79.7万
展开全部
public void fileList(String filePath){
File srcFile = new File("d:/aa");
boolean bFile = srcFile.exists();
if (!bFile || !srcFile.isDirectory() || !srcFile.canRead()) {
try {
srcFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}else{
File[] file = srcFile.listFiles();
for(int i=0;i<file.length;i++){
System.out.println(file[i].getAbsolutePath());
}

}
}
更多追问追答
追问
我测试过了,可以打印出来,不过你的这句 File srcFile = new File("d:/aa");应该改为
File srcFile = new File(filePath);这样吧。不过我打印出来的,为什么是倒序的呢?
它是这样显示的"D:/aa/10.png","D:/aa/9.png","D:/aa/8.png" ...
追答
恩,那个方法名是我后来加上去得,参数忘改了,至于那个排序我就不知道怎么回事了,可能是内部机制吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式