黑马程序员技术交流社区
标题:
java IO的一道练习题,自己想到的一道练习题目
[打印本页]
作者:
王士铭
时间:
2011-7-31 19:22
标题:
java IO的一道练习题,自己想到的一道练习题目
今天我想计算一下D盘下各个目录下有几个avi的文件然后计划一下花多少天去看完
发现D盘中很多文件夹下都有avi文件 一个一个文件夹进去看太花时间了
这不就想到这个问题,希望大家帮我实现一下
求D盘下有几个avi的文件
我暂时实现的是 test文件夹下有22个avi文件 test2文件夹有12个avi文件
实际我希望输出的是D盘下有 34个avi文件
[
本帖最后由 王士铭 于 2011-07-31 19:23 编辑
]
作者:
李龙
时间:
2011-7-31 21:23
标题:
回复 楼主 的帖子
我写的例子有点简单,不过能解决问题,看看行不,有问题告我
import java.io.File;
public class Test_7_31 {
//这里标记符合文件的个数
private static int x = 0;
public static void main(String[] args) {
//设置,你明白
String extension = "jpg";
String pathName ="E:/ww";
//File file = new File("E:/ww/");
search(pathName,extension);
System.out.println(x);
}
private static void search(String pathName,String fileName) {
File file = new File(pathName);
String str[] = file.list();
File directoryName =null;
for(String s:str){
//检测directoryName是否以/为结尾(系统分隔符)
if(pathName.endsWith(File.separator)){
directoryName = new File(pathName+s);
}
else{
directoryName = new File(pathName+File.separator+s);
}
//若果directoryName是一个文件并且扩展名为fileName x++
int i = s.lastIndexOf('.');
if(directoryName.isFile()&&s.substring(i+1).equalsIgnoreCase(fileName))
{
x++;
}
//检测子目录
if(directoryName.isDirectory()){
search(directoryName.toString(),fileName);
}
}
}
}
复制代码
[
本帖最后由 李龙 于 2011-07-31 21:25 编辑
]
作者:
匿名
时间:
2011-8-1 13:27
王士铭看到留言后请留下你的联系方式!!
作者:
匿名
时间:
2011-8-1 14:17
在File的list方法中可以接受一个FilenameFiter参数,通过这个参数股可以只列出符合条件的文件。
FilenameFiter接口里面有一个accept(File dir , String name)方法,这个方法可以依次对指定的File的所有子目录、子文件夹进行迭代、如果返回真true,则list方法就会列出该子目录或者子文件夹。
如下程序:[code=java]package cn.itcast.heima
import java.io.*;
public class FilenameFilterTest
{
public static void main(String[] args)
{
File file = new File("d:\\");
String[] nameList = file.list(new MyFilenameFilter());
for (String name : nameList)
{
System.out.println(name);
}
}
}
//实现自己的FilenameFilter实现类
class MyFilenameFilter implements FilenameFilter
{
public boolean accept(File dir, String name)
{
//如果文件名以.java结尾返回true
return name.endsWith(".avi")
}
}[/code]
作者:
匿名
时间:
2011-8-1 14:21
标题:
回复 板凳 的帖子
学习了!原来可以这么简单!自己的知识还是差太多了!
作者:
匿名
时间:
2011-8-2 00:41
标题:
回复 板凳 的帖子
原来使用FilenameFilter可以这么简单,学习了,我之前把记录数目的 变量定义在了局部所以没迭代一个目录就输出了一次
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2