⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filelister.java

📁 java应用举例2
💻 JAVA
字号:
import java.awt.*;import java.awt.event.*;import java.io.*;import java.text.DateFormat;import java.util.Date;public class FileLister extends Frame implements ActionListener, ItemListener {    //创建程序所需的组件    List list;                      TextField details;             Panel buttons;                 Button up, close;               File currentDir;                FilenameFilter filter;          String[] files;    //设定日期格式                 DateFormat dateFormatter =           DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);    //构造方法    public FileLister(String directory, FilenameFilter filter) {         super("文件信息获取");                      this.filter = filter;                      //使窗口上的关闭按钮生效    	    addWindowListener(new WindowAdapter() {		     public void windowClosing(WindowEvent e) { 		       dispose(); 		   }	    });        //创建列表并添加监视器        list = new List(12, false);                list.addActionListener(this);        list.addItemListener(this);        //创建文本框并使其不能编辑,只用来显示信息        details = new TextField();                 details.setEditable(false);        //创建按钮,并添加监视器        buttons = new Panel();                     buttons.setLayout(new FlowLayout(FlowLayout.RIGHT, 15, 5));        up = new Button("上一级目录");         close = new Button("关闭");        up.addActionListener(this);        close.addActionListener(this);        buttons.add(up);                          buttons.add(close);        //将组件加入应用程序        this.add(list, "Center");                  this.add(details, "North");        this.add(buttons, "South");        this.setSize(500, 350);                listDirectory(directory);             }     public void listDirectory(String directory) {        File dir = new File(directory);        if (!dir.isDirectory())         //如果文件指定的路径不存在,则抛出异常           throw new IllegalArgumentException("文件信息列表: 没有这个路径");        //将路径下的文件名称保存起来,并对其排序        files = dir.list(filter);        	    java.util.Arrays.sort(files);        list.removeAll();        list.add("[上一级目录]");          for(int i = 0; i < files.length; i++) list.add(files[i]);        this.setTitle(directory);        details.setText(directory);        currentDir = dir;    }       public void itemStateChanged(ItemEvent e) {        int i = list.getSelectedIndex() - 1;          if (i < 0) return;        //取得文件名称        String filename = files[i];                       File f = new File(currentDir, filename);          if (!f.exists())                                      throw new IllegalArgumentException("没有这个文件");        //编辑文件信息,这是本程序的关键所在            String info = filename;        if (f.isDirectory()) info += File.separator;        info += " " + f.length() + " 字节 ";        info += dateFormatter.format(new java.util.Date(f.lastModified()));        if (f.canRead()) info += " 可读";        if (f.canWrite()) info += " 可写";	        details.setText(info);    }      public void actionPerformed(ActionEvent e) {        if (e.getSource() == close) this.dispose();        else if (e.getSource() == up) { up(); }        else if (e.getSource() == list) {              int i = list.getSelectedIndex();             if (i == 0) up();                            else {                                           String name = files[i-1];                 File f = new File(currentDir, name);                    String fullname = f.getAbsolutePath();                if (f.isDirectory()) listDirectory(fullname);             }        }    }       protected void up() {        //获得上一级目录名称,并转到上一级目录        String parent = currentDir.getParent();        if (parent == null) return;        listDirectory(parent);    }    public static void main(String args[]) throws IOException {        FileLister f;        FilenameFilter filter = null;          String directory = null;                       if (directory == null) directory = System.getProperty("user.dir");        //创建文件信息列表对象,并显示它        f = new FileLister(directory, filter);        f.show();    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -