JAVA兴趣随笔--获取目录/文件信息
周六起来,打打代码醒醒神。这个就是自己可以对选择的文件或者目录获取到它的属性信息
package Test;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Date;
import javax.swing.*;
//获取目录/文件信息
public class Demo_FileInfo extends JFrame {
JTextField jtfPath;
JTextArea jtaInfo;
public Demo_FileInfo() {
super("取得目录/文件信息"); //调用父类构造函数
jtfPath = new JTextField(18); //实例化文件输入框
JButton jbSelectedFile = new JButton("选择"); //实例化文件选择按钮
JPanel panel = new JPanel(); //new面板,用于容纳输入框和文件选择按钮
jtaInfo = new JTextArea(); //实例化文件信息显示框
panel.add(jtfPath); //将文本输入框增加到面板
panel.add(jbSelectedFile); //将文件选择按钮增加到面板
Container container = getContentPane(); //得到容器
container.add(panel, BorderLayout.NORTH); //将面板放入容器
JScrollPane jsp = new JScrollPane(jtaInfo);
jsp.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); //设置四边边界留空大小
container.add(jsp, BorderLayout.CENTER);
//选择文件按钮事件处理
jbSelectedFile.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//实例化文件选择器
JFileChooser fileChooser = new JFileChooser();
//设置文件选择模式,选择为文件和目录均可
fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
//弹出文件选择器,并判断是否点击了选择按钮
if(fileChooser.showOpenDialog(Demo_FileInfo.this) == JFileChooser.APPROVE_OPTION) {
//如果点击了选择按钮,获取选择文件或目录的绝对路径
String fileName = fileChooser.getSelectedFile().getAbsolutePath();
//回显路径
jtfPath.setText(fileName);
//显示文件信息
showFileInfo(jtfPath.getText());
}
}
});
//文件路径输入框事件处理
jtfPath.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent event) {
showFileInfo(jtfPath.getText());
}
});
setSize(500, 400); //设置窗口尺寸
setVisible(true); //设置窗口可视
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void showFileInfo(String filename) {
//先清空信息显示框
jtaInfo.setText("");
File f = new File(filename); //以得到的路径实例化文件对象
jtaInfo.append(filename+":\n"); //在信息显示窗口增加显示文本
//判断是目录还是文件
if(f.isDirectory()) {
jtaInfo.append("是一个目录");
}else if(f.isFile()) {
jtaInfo.append("是一个文件");
}
jtaInfo.append("\n 可读: "+f.canRead()); //得到可读属性
jtaInfo.append("\n 可写: "+f.canWrite()); //得到可写属性
jtaInfo.append("\n 隐藏: "+f.isHidden()); //是否是隐藏文件
jtaInfo.append("\n 只读: "+f.setReadOnly()); //是否是只读文件
long modifyDate = f.lastModified(); //得到最后修改日期
if(modifyDate != 0) {
jtaInfo.append("\n 最后修改日期: "+new Date(modifyDate));
}
long length = f.length(); //得到文件长度(如果是目录,则为0)
if(length != 0) {
jtaInfo.append("\n 文件长度: "+length);
}
}
public static void main(String[] args) {
new Demo_FileInfo();
}
}
敲完后执行一下 可以选择目录 也可以选择文件