A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马新乐 黑马帝   /  2011-12-31 03:58  /  2661 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问listFiles()什么意思,有什么用

4 个回复

倒序浏览
File类有一个listFiles(FileNameFilter filter).只需要实现一个简单的filter就可以做到在E:\data\file_selector_test 目录下面查找以.java 或者.txt结尾的文件,进行文件列表的查找。见下例。

类名:FileNameSelector



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

public class FileNameSelector implements FilenameFilter
{
String extension = ".";
public FileNameSelector(String fileExtensionNoDot)
{
  extension += fileExtensionNoDot;
}
@Override
public boolean accept(File dir, String name)
{
  return name.endsWith(extension);
}
public static void main(String[] args)
{
  File directory = new File("E:\\data\\file_selector_test");
  //列出所有文件
  File[] files = directory.listFiles();
  System.out.println("\n目录"+directory.getName()+"下的所有文件");
  for(File file : files)
  {
   System.out.print("  " + file.getName());
  }
  //列出所有.txt文件
  File[] txtFiles = directory.listFiles(new FileNameSelector("txt"));
  System.out.println("\n目录"+directory.getName()+"下的.txt文件");
  for(File file : txtFiles)
  {
   System.out.print("  " + file.getName());
  }
  
  //列出所有.java文件
  File[] javaFiles = directory.listFiles(new FileNameSelector("java"));
  System.out.println("\n目录"+directory.getName()+"下的.java文件");
  for(File file : javaFiles)
  {
   System.out.print("  " + file.getName());
  }
}
}
回复 使用道具 举报
listFiles方法
       public File[] listFiles()
       该方法的作用是返回当前文件夹下所有的文件对象。包含其属性。

File类中包含了很多获得文件或文件夹属性的方法,使用起来比较方便,下面将常见的方法介绍如下:
  a、createNewFile方法
  public boolean createNewFile() throws IOException
  该方法的作用是创建指定的文件。该方法只能用于创建文件,不能用于创建文件夹,且文件路径中包含的文件夹必须存在。
  b、delect方法
  public boolean delete()
  该方法的作用是删除当前文件或文件夹。如果删除的是文件夹,则该文件夹必须为空。如果需要删除一个非空的文件夹,则需要首先删除该文件夹内部的每个文件和文件夹,然后在可以删除,这个需要书写一定的逻辑代码实现。
  c、exists方法
  public boolean exists()
  该方法的作用是判断当前文件或文件夹是否存在。
  d、getAbsolutePath方法
  public String getAbsolutePath()
  该方法的作用是获得当前文件或文件夹的绝对路径。例如c: est1.t则返回c: est1.t.
  e、getName方法
  public String getName()
  该方法的作用是获得当前文件或文件夹的名称。例如c: est1.t,则返回1.t.
  f、getParent方法
  public String getParent()
  该方法的作用是获得当前路径中的父路径。例如c: est1.t则返回c: est.
  g、isDirectory方法
  public boolean isDirectory()
  该方法的作用是判断当前File对象是否是目录。
  h、isFile方法
  public boolean isFile()
  该方法的作用是判断当前File对象是否是文件。
  i、length方法
  public long length()
  该方法的作用是返回文件存储时占用的字节数。该数值获得的是文件的实际大小,而不是文件在存储时占用的空间数。
  j、list方法
  public String[] list()// 并不包含其属性。
  该方法的作用是返回当前文件夹下所有的文件名和文件夹名称。说明,该名称不是绝对路径。
  k、listFiles方法
        public File[] listFiles()
  该方法的作用是返回当前文件夹下所有的文件对象。包含其属性。
  l、mkdir方法
  public boolean mkdir()
  该方法的作用是创建当前文件文件夹,而不创建该路径中的其它文件夹。假设d盘下只有一个test文件夹,则创建d: estabc文件夹则成功,如果创建d:a文件夹则创建失败,因为该路径中d:a文件夹不存在。如果创建成功则返回true,否则返回false.
  m、mkdirs方法
  public boolean mkdirs()
  该方法的作用是创建文件夹,如果当前路径中包含的父目录不存在时,也会自动根据需要创建。
  n、renameTo方法
  public boolean renameTo(File dest)
  该方法的作用是修改文件名。在修改文件名时不能改变文件路径,如果该路径下已有该文件,则会修改失败。
  o、setReadOnly方法
  public boolean setReadOnly()
  该方法的作用是设置当前文件或文件夹为只读。
回复 使用道具 举报
ListFile()是File类中的方法其主要形式有以下三种
1.public File[] listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
如果此抽象路径名不表示一个目录,那么此方法将返回 null。否则返回一个 File 对象数组,每个数组元素对应目录中的每个文件或目录。表示目录本身及其父目录的名称不包括在结果中。得到的每个抽象路径名都是根据此抽象路径名,使用 File(File, String) 构造方法构造的。所以,如果此路径名是绝对路径名,那么得到的每个路径名都是绝对路径名;如果此路径名是相对路径名,那么得到的每个路径名都是相对于同一目录的路径名。

不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。


返回:
抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。



2.public File[] listFiles(FilenameFilter filter)返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。除了返回数组中的路径名必须满足过滤器外,此方法的行为与 listFiles() 方法相同。如果给定 filter 为 null,则接受所有路径名。否则,当且仅当在此抽象路径名及其表示的目录中的文件名或目录名上调用过滤器的 FilenameFilter.accept(java.io.File, java.lang.String) 方法返回 true 时,该路径名才满足过滤器。

参数:
filter - 文件名过滤器
返回:
抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果此抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。


3.public File[] listFiles(FileFilter filter)返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。除了返回数组中的路径名必须满足过滤器外,此方法的行为与 listFiles() 方法相同。如果给定 filter 为 null,则接受所有路径名。否则,当且仅当在路径名上调用过滤器的 FileFilter.accept(java.io.File) 方法返回 true 时,该路径名才满足过滤器。

参数:
filter - 文件过滤器
返回:
抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。如果目录为空,那么数组也将为空。如果抽象路径名不表示一个目录,或者发生 I/O 错误,则返回 null。
回复 使用道具 举报
付星 黑马帝 2011-12-31 17:43:47
报纸
在我们调用java库中的File.listFiles()可以列出所有所有文件。其实还有一个方法可以对文件进行过滤,而其中需要实现接口FileFilter
public class myFileFilter implements FileFilter{   
  
        @Override  
        public boolean accept(File pathname) {   
            String filename = pathname.getName().toLowerCase();   
            if(filename.contains(".txt")){   
                return false;   
            }else{   
                return true;   
            }   
        }   
    }
File file = new File("D:\\");   
File[] files = file.listFiles(new myFileFilter());  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马