Java实现批量给文件或文件夹改名窗口程序

Java对文件夹或文件夹进行批量改名

说明

本人也是初学Java不久的小白,可能会有很多地方不规范,本程序仅供参考,功能已经实现。

程序演示

操作前

在这里插入图片描述

对文件进行改名

在这里插入图片描述
在这里插入图片描述

对文件夹改名

在这里插入图片描述

代码区

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

public class cz {
    
    
    public static void main(String[] args) {
    
    
        //创建一个窗口
        JFrame f = new JFrame("对文件或文件夹进行批量改名");
        //不给窗口添加排版方式
        f.setLayout(null);
        //获得屏幕的分辨率
        Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
        //设置窗口在屏幕中的显示位置和大小
        f.setBounds(screenSize.width/2-220,screenSize.height/2-80,430,170);
        //创建一个标签
        JLabel jl = new JLabel("路径");
        //设置标签相对于窗口程序的显示位置和大小
        jl.setBounds(5,10,30,25);
        //把标签组件添加到窗口中
        f.add(jl);
        //创建一个单行文本框
        JTextField tf1 = new JTextField();
        //给单行文本框设置相对窗口的位置和大小
        tf1.setBounds(42,10,300,25);
        //把文本框添加到窗口中
        f.add(tf1);
        //再创建一个标签
        JLabel jl2 = new JLabel("名称");
        //设置这个标签相对窗口的位置和大小
        jl2.setBounds(5,40,30,25);
        //把这个标签添加到窗口中
        f.add(jl2);
        //再创建一个单行文本框
        JTextField tf2 = new JTextField();
        //设置这个单行文本框相对窗口的显示位置
        tf2.setBounds(42,40,300,25);
        //把这个文本框添加到窗口中
        f.add(tf2);
        //创建一个按钮
        JButton jb = new JButton("确定");
        //设置按钮在窗口中的显示位置
        jb.setBounds(350,17,60,40);
        //把按钮添加到窗口中
        f.add(jb);
        //创建一个单选框  true是在运行程序时默认选中这个
        JRadioButton jrb1 = new JRadioButton("文件",true);
        //在创建一个单选框
        JRadioButton jrb2 = new JRadioButton("文件夹");
        //为了让这两个单选框实现能单选的效果  创建一个ButtonGroup让两个单选框能实现关联
        ButtonGroup bg = new ButtonGroup();
        //把两个单选框添加到ButtonGroup中使两个单选框实现相关联
        bg.add(jrb1);
        bg.add(jrb2);
        //设置两个单选框在窗口中的显示位置
        jrb1.setBounds(15,70,60,50);
        jrb2.setBounds(75,70,70,50);
        //把两个单选框添加到窗口中
        f.add(jrb1);
        f.add(jrb2);
        //让编写的这个窗口能实现关闭,要是不加这行就会点关闭没反应的
        f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        //显示窗口
        f.setVisible(true);
        //给按钮添加点击事件
        jb.addActionListener(new ActionListener() {
    
    
            @Override
            public void actionPerformed(ActionEvent e) {
    
    
                String text1 = tf1.getText();
                String text2 = tf2.getText();
                File baseFile = new File(text1);
                //判断文本框输入的文件夹路径是否正确
                if (baseFile.isFile() || !baseFile.exists()) {
    
    
                    //如果输入的路径不是文件夹则输出并不再执行之后的代码
                    tf1.setText("不是文件夹");
                    return;
                }else{
    
    
                    //如果路径正确,则弹出信息框,让我们确认一下是否要修改那个路径下的文件或文件夹名字
                    int res = JOptionPane.showConfirmDialog(null, "是否 [" + tf1.getText() + "] 下的文件名", "是否继续", JOptionPane.YES_NO_OPTION);
                    //判断信息框我们点的确定还是取消
                    if(res==JOptionPane.YES_OPTION){
    
    
                        //如果点了确定执行下面代码
                        int a=0;
                        //获取我们输入路径下的所有文件和文件夹
                        File[] files = baseFile.listFiles();
                        //判断单选框咱选的要修改文件还是文件夹
                        if (jrb1.isSelected()) {
    
    
                            //如果我们单选框选择了文件,则对获取到的当前路径下的东西进行筛选
                            //用for循环遍历
                            for (File file : files) {
    
    
                                if (file.isDirectory()) {
    
    
                                    continue;
                                }
                                a++;
                                //获取文件格式,对下面的重命名提供使用
                                String[] str = file.getPath().split("\\.");
                                //对文件进行改名
                                file.renameTo(new File(text1 + "\\" + text2 + a + "." + str[1]));
                            }
                        }else{
    
    
                            //如果我们在单选框中选择的文件夹,进行这个else中的代码
                            //for循环遍历
                            for (File file : files) {
    
    
                                if (file.isFile()) {
    
    
                                    continue;
                                }
                                a++;
                                file.renameTo(new File(text1 + "\\" + text2 + a ));
                            }
                        }
                        //修改完文件或文件夹后,第二个单选框中内容为  “成功”
                        tf2.setText("成功");
                    }else {
    
    
                        //这个else是第一个if的,如果路径不对则直接结束
                        return;
                    }
                }

            }
        });

    }
}

猜你喜欢

转载自blog.csdn.net/z2742431760/article/details/108677491
今日推荐