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 javax.swing.*;

//目录和文件的创建、删除和更名
public class Demo_FileUse extends JFrame{
	JTextField jtfPath;
	
	public Demo_FileUse() {
		super("目录和文件的创建、删除和更名"); //调用父类构造函数
		
		jtfPath = new JTextField(18); //实例化文件路径输入框
		JButton jbFile = new JButton("选择"); //实例化文件选择按钮
		JPanel panel = new JPanel(); //实例化面板,用于容纳输入框和按钮
		panel.add(new JLabel("文件名:")); //增加组件到面板
		panel.add(jtfPath);
		panel.add(jbFile);
		
		JPanel panel2 = new JPanel();
		//实例化按钮,并增加到面板2上
		panel2.add(new JButton(new CreateFileAction()));
		panel2.add(new JButton(new RenameFileAction()));
		panel2.add(new JButton(new DeleteFileAction()));
		
		//选择文件按钮事件处理
		jbFile.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent event) {
				//实例化文件选择器
				JFileChooser fileChooser = new JFileChooser();
				 //设置文件选择模式,此处为文件和目录均可
				fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
				//弹出文件选择器,并判断是否点击了打开按钮
				if(fileChooser.showOpenDialog(Demo_FileUse.this) == JFileChooser.APPROVE_OPTION) {
					//得到选择文件或目录的绝对路径
					String fileName = fileChooser.getSelectedFile().getAbsolutePath();
					jtfPath.setText(fileName);
				}
			}
		});
		
		//得到容器
		Container container = getContentPane();
		//增加组件到容器
		container.add(panel, BorderLayout.NORTH);
		container.add(panel2, BorderLayout.CENTER);
		
		setSize(500, 400);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时退出程序
	}
	
	//创建新文件
	class CreateFileAction extends AbstractAction{
		public CreateFileAction() {
			super("创建文件");
		}

		@Override
		public void actionPerformed(ActionEvent e) {
			//从输入框得到文件名
			String filename = jtfPath.getText();
			//实例化一个文件
			File sfile = new File(filename);
			try {
				//如果文件不存在
				if(!sfile.exists()) {
					//创建文件成功
					if(sfile.createNewFile() == true) {
						showMessage(filename+" 新文件创建成功.");
					} else {
						showMessage(filename+" 新文件创建失败.");
					}
				} else {
					showMessage(filename+" 原文件已存在.");
				}
			}catch (Exception ex) {
				//打印错误信息
				ex.printStackTrace();
			}
		}
	}
	
	//重命名文件
	class RenameFileAction extends AbstractAction{
		public RenameFileAction() {
			super("重命名文件");
		}
		
		@Override
		public void actionPerformed(ActionEvent e) {
			//输入新文件名对话框
			String filename = JOptionPane.showInputDialog("输入新文件名");
			//源文件
			File sfile = new File(jtfPath.getText());
			//新文件
			File f = new File(filename);
			//重命名
			sfile.renameTo(f);
			showMessage(sfile.getName()+"  重命名成功.");
			//更新输入框的文件名
			jtfPath.setText(f.getAbsolutePath());
		}
	}
	
	//删除文件
	class DeleteFileAction extends AbstractAction{
		public DeleteFileAction() {
			super("删除");
		}
		
		@Override
		public void actionPerformed(ActionEvent e) {
			//源文件
			File sfile = new File(jtfPath.getText());
			try {
				//删除文件
				sfile.delete();
				showMessage(sfile.getName()+" 删除成功.");
			}catch(Exception ex) {
				showMessage(sfile.getName()+" 删除失败.");
				ex.printStackTrace();
			}
		}
	}
	
	private void showMessage(String message) {
		//显示信息
		JOptionPane.showMessageDialog(Demo_FileUse.this, message);
	}
	
	public static void main(String[] args) {
		new Demo_FileUse();
	}
}

执行后可以实现创建、更名和删除的功能

 

 

 

代码里还是有点问题的,在进行重命名和删除的时候,应该是要在创建文件的路径上进行的操作,这样才是正确的。感兴趣的话可以自己加点日志debug下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值