技术开发 频道

用Java读取各种计算机文件系统的文件列表

  【IT168 技术文档】当你安装了jdk,在jdk的类库里,有一个标准的File类,通过该类,可以很方便的实现浏览各种文件系统的功能。

  File类:

  java.lang.Object

  |

  +--java.io.File

  File类扩展了Object对象,实现了Serializable, Comparable定义的接口,可以通过File的一个实例对jvm上的文件系统进行各种操作,下面我编写了一个FileViewer类,该类通过Iterator类将一个文件列表实现对列表的迭代操作

  FileViewer.java   import java.io.File;   import java.util.Date;   import java.util.Iterator;   import java.util.Vector;   public class FileViewer{   File myDir;   File[] contents;   Vector vectorList;   Iterator currentFileView;   File currentFile;   String path;   public FileViewer(){   path=new String("");   vectorList=new Vector();   }   public FileViewer(String path){   this.path=path;   vectorList=new Vector();   }   /**   * 设置浏览的路径   */   public void setPath(String path){   this.path=path;   }   /***   * 返回当前目录路径   */   public String getDirectory(){   return myDir.getPath();   }   /**   * 刷新列表   */   public void refreshList(){   if(this.path.equals("")) path="c:\\";   myDir=new File(path);   vectorList.clear();   contents =myDir.listFiles();   //重新装入路径下文件   for(int i=0;i   vectorList.add(contents[i]);   }   currentFileView=vectorList.iterator();   }   /**   * 移动当前文件集合的指针指到下一个条目   * @return 成功返回true,否则false   */   public boolean nextFile(){   while(currentFileView.hasNext()){   currentFile=(File)currentFileView.next();   return true;   }   return false;   }   /**   * 返回当前指向的文件对象的文件名称   */   public String getFileName(){   return currentFile.getName();   }   /**   * 返回当前指向的文件对象的文件尺寸   */   public String getFileSize(){   return new Long(currentFile.length()).toString();   }   /**   * 返回当前指向的文件对象的最后修改日期   */   public String getFileTimeStamp(){   return new Date(currentFile.lastModified()).toString();   }   /**   * 返回当前指向的文件对象是否是一个文件目录   */   public boolean getFileType(){   return currentFile.isDirectory();   }   }

  通过setPath()方法设定要浏览的目录(注意如果操作系统为微软操作系统,每个路径分隔符应写成两个斜杠\\),nextFile()方法用来移动列表记录,可以通过getFileName()得到文件或文件夹名称,通过getFileSize()得到文件尺寸,通过getFileTimeStamp()得到文件的最后修改时间,通过getFileType()判断是否是一个文件目录。

  编写一个test例子测试这个FileViewer类

  test.java   import java.io.*;   public class test{   public static void main(String[] args){   System.out.println("File List");   FileViewer f=new FileViewer();   f.setPath("d:\\");   f.refreshList();   while(f.nextFile()){   System.out.print(f.getFileName());   if(!f.getFileType())   System.out.print(" "+f.getFileSize());   else   System.out.print(" ");   System.out.print(f.getFileTimeStamp()+"\n");   }   }   }

  首先编译FileViewer.java文件,生成FileViewer.class类;再编译test.java运行后,可以显示当前目录下的所有文档.唯一不足就是:不能对当前路径下的文件夹的内容进行显示.

0
相关文章