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();
	}

}

敲完后执行一下 可以选择目录 也可以选择文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值