使用方法:
输入
文件夹路径和
后缀名即可(操作密码:333)
方式1:批处理启动(注意这两个文件应该放在同一目录下。)
zip压缩文件deleteFile.zip 批处理文件.bat(源码如下,复制到txt文件中,然后修改后缀为bat即可)
@echo off
color 2f
mode con cols=80 lines=30
echo.
echo *************************************************************
echo * 本程序仅用于【批量删除文件】 *
echo * 木丁西(QQ:1012421396) *
echo *使用方法: *
echo * 1.选择文件夹路径 *
echo * 2.输入要删除文件名的后缀(例如txt word xls 等) *
echo *************************************************************
echo.
title 批量删除文件
java -classpath .\deleteFile.zip com.cn.deleteFile
方式2:打jar包 (
推荐:因为这是图形化界面,可以启动
)
Demo:
package com.cn;
import java.awt.BorderLayout;
import java.awt.ScrollPane;
import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class deleteFile {
//窗体
static JFrame frame = new JFrame("批量删除文件");
static boolean flag = true;//删除成功标志。默认不成功
static int count = 0;//计数,删除的文件个数
public static void main(String[] args){
String password = JOptionPane.showInputDialog("请输入操作密码:(3位数字)");
if(!"333".equalsIgnoreCase(password)){
JOptionPane.showMessageDialog(frame, "密码错误,您没有权限操作!!!");
System.exit(1);
}
//弹出提示框
JOptionPane.showMessageDialog(frame, "本程序仅用于【批量删除文件】\n作者:木丁西(QQ:1012421396)\n使用方法:\n 1.选择文件夹路径(注意:不能选择根盘符)\n 2.输入要删除文件名的后缀(例如txt word xls 等)");
//面板
JPanel panel = new JPanel();
//文件夹搜索夹
JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
fileChooser.showOpenDialog(null);//弹出选择框
//后缀名输入框
String extensions = JOptionPane.showInputDialog("请输入后缀名:(例如:txt doc downloading等)");
/* BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入文件夹路径:");
String filePath = br.readLine();
System.out.println("请输入要删除文件的后缀名:");
String extensions = br.readLine();
File file = new File(filePath);
delete(file, extensions);*/
//读取一个文件夹路径
File file = fileChooser.getSelectedFile();
//删除前确认
int num = JOptionPane.showConfirmDialog(frame, "您确定删除文件夹【" + file + "】中所有后缀为【" + extensions + "】的文件吗?");//是0 否1 取消2 x-1
if(num == 0){
try {
delete(file, extensions);
} catch (Exception e) {
JOptionPane.showMessageDialog(frame, "注意:选择的盘符无效!!!");
System.exit(1);
}
}else{
System.exit(1);
}
FrameUtil.initFrame(frame, 300, 400);
if(flag){
JOptionPane.showMessageDialog(frame, "文件夹为【" + file + "】中所有后缀为【" + extensions + "】的文件删除成功!!共计【" + count + "】个文件");
System.out.println("文件夹为【" + file + "】中所有后缀为【" + extensions + "】的文件删除成功!!共计【" + count + "】个文件");
}
System.exit(2);
}
private static void delete(File file, String extensions) {
if(file == null || extensions == null || extensions.isEmpty()){
flag = false;
JOptionPane.showMessageDialog(frame, "没有正确选择文件夹路径或者要删除文件的后缀名!!!");
return;
}
//遍历文件夹
if(file.isDirectory()){//如果file是文件夹
File[] files = file.listFiles();
for(File f : files){
if(f.isDirectory()){
delete(f, extensions);
}
//获取文件的文件名
String path = f.getName();
//正则表达式
String reg = ".+\\." + extensions;
if(path.matches(reg)){
count++;
f.delete();
System.out.println("正在删除" + f.getName());
}
}
}else{
flag = false;
System.out.println("对不起您输入的不是文件夹!!!");
}
}
}
FrameUtil工具:
package com.cn;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class FrameUtil {
//获取屏幕的分辨率,设置窗体在屏幕的居中位置
public static void initFrame(JFrame frame, int width, int height){
frame.setVisible(false);//设置窗体的可见性为不可见
Toolkit toolkit = Toolkit.getDefaultToolkit();
//获取屏幕的分辨率
Dimension screenSize = toolkit.getScreenSize();
int x = screenSize.width;
int y = screenSize.height;
frame.setBounds((x-width)>>1, (y-height)>>1, width, height);
//设置窗体关闭的事件
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
效果: