黑马程序员技术交流社区

标题: IO的问题 [打印本页]

作者: 方志亮    时间: 2012-8-27 21:26
标题: IO的问题
本帖最后由 方志亮 于 2012-8-27 21:27 编辑

package cn.test;

import java.io.File;
import java.io.FilenameFilter;

/*
* 指定一个目录,打印这个目录下所有文件和文件夹的名称
* d:\\test
*/
public class FileDemo {

        public static void main(String[] args) {
                File file = new File("d:\\343242155");
                listAllName(file);
        }

        public static void listAllName(File dir) {
                // 由于我们获取到的数据还有进行判断,所有必需返回的是文件对象
//                System.out.println(dir.getPath());
                File[] fileArray = dir.listFiles(new FilenameFilter() {
                        @Override
                        public boolean accept(File dir, String name) {
                                // TODO Auto-generated method stub
                                return name.endsWith(".jpg");
                        }
                });//用这个为什么不行??????
                //File[] fileArray = dir.listFiles();//为什么用这个可以               
                    for (File file : fileArray) {
                        // 判断每个file是目录还是文件,如果是目录,继续。如果是文件,则打印名称。
                        if (file.isDirectory()) {
                                listAllName(file);
                        } else {
                                if(file.getName().endsWith(".jpg"))
                                System.out.println(file.getAbsolutePath());
                        }
                }
        }

}

作者: 追梦黑马    时间: 2012-8-27 21:51
/*
* 指定一个目录,打印这个目录下所有文件和文件夹的名称
* d:\\test
*/
public class FileDemo {

        public static void main(String[] args) {
                File file = new File("d:\\343242155");
                listAllName(file);
        }

        public static void listAllName(File dir) {
                // 由于我们获取到的数据还有进行判断,所有必需返回的是文件对象
//                System.out.println(dir.getPath());
                File[] fileArray = dir.listFiles(new FilenameFilter() {
                        @Override
                        public boolean accept(File dir, String name) {
                                // TODO Auto-generated method stub
                                return name.endsWith(".jpg");
                        }
                });//用这个为什么不行??????
                //File[] fileArray = dir.listFiles();//为什么用这个可以  答:因为上面那个方法确少判断      
                    for (File file : fileArray) {
                        // 判断每个file是目录还是文件,如果是目录,继续。如果是文件,则打印名称。
                        if (file.isDirectory()) {
                                listAllName(file);
                        } else {
                                if(file.getName().endsWith(".jpg"))
                                System.out.println(file.getAbsolutePath());
                        }
                }
        }

}

作者: 追梦黑马    时间: 2012-8-27 21:52
  File[] fileArray = dir.listFiles(new FilenameFilter() {
                        @Override
                        public boolean accept(File dir, String name) {
                                // TODO Auto-generated method stub
                                return name.endsWith(".jpg");
                        }
因为方法确少判断   
作者: 方志亮    时间: 2012-8-27 22:14
追梦黑马 发表于 2012-8-27 21:52
File[] fileArray = dir.listFiles(new FilenameFilter() {
                        @Override
         ...

那么应该怎么判断    代码体现以下 谢谢
作者: 黑马张涛    时间: 2012-8-27 22:27
                File[] fileArray = dir.listFiles(new FilenameFilter() {
                         @Override
                         public boolean accept(File dir, String name) {
                                 // TODO Auto-generated method stub
                                 return name.endsWith(".jpg");//如果,改为return  true的话和下面的listFiles效果一样。
                         }
                 });//用这个为什么不行??????
这一段你限定了只返回后缀名为.jpg的文件的路径。目录肯定是不符合的,文件也只返回在d:\根目录下的jpg文件的路径。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2