1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > FILE文件删除操作(删除指定文件夹下所有文件和文件夹包括子文件夹下所有文件和文件夹

FILE文件删除操作(删除指定文件夹下所有文件和文件夹包括子文件夹下所有文件和文件夹

时间:2021-07-06 18:46:36

相关推荐

FILE文件删除操作(删除指定文件夹下所有文件和文件夹包括子文件夹下所有文件和文件夹

-11-0519:42:08开始写

选择

删除

1.FileUtils.java类

1 import java.io.File;//导入包 2 import java.util.List;//导入包 3 4 public class FileUtils { 5// 删除文件夹下所有文件 6public static void deleteFiles(File rootFile) { //参数是根文件夹 7 if (rootFile.listFiles().length == 0) {// 如果用户给定的是空文件夹就退出方法 8 return;//退出 9 } else {10 File[] files = rootFile.listFiles();// 将非空文件夹转换成File数组11 for (File file : files) {//使用foreach语句遍历文件数组12 if (file.isFile()) {//判断是否为文件13 file.delete();// 删除指定文件夹下的所有文件14 } else {15 if (file.listFiles().length == 0) {//file类型是文件夹且文件夹为空16file.delete();// 删除指定文件夹下的所有空文件夹17 } else {18deleteDirectories(file);// 删除指定文件夹下的所有非空文件夹(包括file)19 }20 }21 }22 }23}2425// 删除文件夹及文件夹下所有文件26public static void deleteDirectories(File rootFile) {27 if (rootFile.isFile()) {//第一次肯定不是文件类型,因为deleteFiles方法中已经判断过了28 rootFile.delete();// 如果给定的File对象是文件就直接删除29 } else {// 如果是一个文件夹就将其转换成File数组30 File[] files = rootFile.listFiles();// 将非空文件夹转换成File数组31 for (File file : files) {//使用foreach语句遍历文件数组32 deleteDirectories(file);// 如果不是空文件夹则就迭代deleteDictionary()方法33 }34 rootFile.delete();// 如果是空文件夹就直接删除35 } 36}3738// 获得指定目录下的所有文件的路径39public static List<String> getFilePath(List<String> list, File rootFile) {//返回值的就是传入的List<String> list类型,用于输出被删除的文件40 File[] files = rootFile.listFiles();// 将非空文件夹转换成File数组41 for (File file : files) {//使用foreach语句遍历文件数组42 if (file.isDirectory()) {//判断是否为文件夹43 getFilePath(list, file);//如果是文件夹则就迭代getFilePath()方法44 } else {45 //添加file的绝对路径添加到list中,在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\'46 list.add(file.getAbsolutePath().replace("\\", File.separator));47 }48 }49 //返回所有文件路径,我利用自动生成的文件夹程序,然后再删除发现文本域没输出,原来获得的只是文件路径,我花了半小时找题,被自己蠢哭50 return list;//文件的路径是文件!文件!文件!51}52 }

2.FileDeleteFrame.java类

1 import java.awt.BorderLayout; 2 import java.awt.event.ActionEvent; 3 import java.awt.event.ActionListener; 4 import java.io.File; 5 import java.util.ArrayList; 6 import java.util.Iterator; 7 import java.util.List; 8 9 import javax.swing.JButton; 10 import javax.swing.JFileChooser; 11 import javax.swing.JFrame; 12 import javax.swing.JPanel; 13 import javax.swing.JScrollPane; 14 import javax.swing.JTextArea; 15 import javax.swing.JTextField; 16 import javax.swing.border.EmptyBorder; 17 import java.awt.Font; 18 import javax.swing.UIManager; 19 20 //@SuppressWarnings J2SE 提供的一个批注或者注解。 21 //该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默, 22 //即忽略这些警告信息。当在可序列化的类上缺少 serialVersionUID 定义时的警告 23 @SuppressWarnings("serial") 24 public class FileDeleteFrame extends JFrame {//窗口 25 26private JPanel contentPane;//面板 27private JTextField chooseTextField;//选择后显示路径的文本域 28private File fileName;//文件类型 29private JTextArea resultTextArea;//显示被删除的文件路径的文本域 30 31public static void main(String[] args) { 32 try { 33 //Java Swing 非常漂亮的外观Nimbus使用方法 34 UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); 35 } catch (Throwable e) { 36 e.printStackTrace(); 37 } 38 FileDeleteFrame frame = new FileDeleteFrame();//实例化FileDeleteFrame 39 frame.setVisible(true);//可显示窗体 40} 41 42public FileDeleteFrame() {//无参构造函数 43 setTitle("\u5220\u9664\u6587\u4EF6\u5939\u4E2D\u6240\u6709\u6587\u4EF6");//Unicode字符集编码 44 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗体方式 45 setBounds(100, 100, 450, 300);//设置窗体左上角初始位置和宽高 46 contentPane = new JPanel();//面板 47 contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));//外边距 48 setContentPane(contentPane);//为窗体设置面板 49 contentPane.setLayout(new BorderLayout(0, 0));//设置布局方式为边界布局方式 50 51 JPanel choosePanel = new JPanel();//选择面板 52 contentPane.add(choosePanel, BorderLayout.NORTH);//加入到contentPane中,且在北方位置 53 54 chooseTextField = new JTextField();//实例化,选择后显示路径的文本域 55 chooseTextField.setFont(new Font("微软雅黑", Font.PLAIN, 16));//设置字体,类型,大小 56 choosePanel.add(chooseTextField);//添加到选择面板 57 chooseTextField.setColumns(18);//设置最大显示列数 58 59 JButton chooseButton = new JButton("\u9009\u62E9\u6587\u4EF6\u5939");//Unicode字符集编码 60 chooseButton.setFont(new Font("微软雅黑", Font.PLAIN, 16));//设置字体,类型,大小 61 chooseButton.addActionListener(new ActionListener() {//设置按钮监听事件 62 public void actionPerformed(ActionEvent arg0) {//重写actionPerformed方法 63 do_chooseButton_actionPerformed(arg0);//调用自定义处理方法,在下方 64 } 65 }); 66 choosePanel.add(chooseButton);//添加到选择面板 67 68 JPanel buttonPanel = new JPanel();//删除面板 69 contentPane.add(buttonPanel, BorderLayout.SOUTH);//加入到contentPane中,且在南方位置 70 71 JButton deleteButton = new JButton("\u5F00\u59CB\u5220\u9664");//删除按钮 72 deleteButton.setFont(new Font("微软雅黑", Font.PLAIN, 16));//设置字体,类型,大小 73 deleteButton.addActionListener(new ActionListener() {//设置按钮监听事件 74 public void actionPerformed(ActionEvent arg0) {//重写actionPerformed方法 75 do_deleteButton_actionPerformed(arg0);//调用自定义处理方法,在下方 76 } 77 }); 78 buttonPanel.add(deleteButton);//添加到删除面板 79 80 JScrollPane scrollPane = new JScrollPane();//显示被删除的文件路径的滚动面板 81 contentPane.add(scrollPane, BorderLayout.CENTER);//加入到contentPane中,且在中间位置 82 83 resultTextArea = new JTextArea();//显示被删除的文件路径的文本域 84 resultTextArea.setFont(new Font("微软雅黑", Font.PLAIN, 16));//设置字体,类型,大小 85 resultTextArea.setText("\u5220\u9664\u4E86\u4EE5\u4E0B\u6587\u4EF6\uFF1A");//使用Unicode字符集编码,设置标题 86 scrollPane.setViewportView(resultTextArea);//让文本域显示在滚动面板中 87} 88 89protected void do_chooseButton_actionPerformed(ActionEvent arg0) {//自定义选择按钮事件方法 90 JFileChooser chooser = new JFileChooser();//文件选择器 91 chooser.setMultiSelectionEnabled(false);//设置为单选 92 chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);//设置为仅文件夹可选 9394 //如果选择打开按钮,这返回JFileChooser.APPROVE_OPTION常量, 95 //参数是文件选择器的位置窗口的中心位置,如果为null则以屏幕中心位置,如果是组件则以组件所在窗体位置 96 int result = chooser.showOpenDialog(this.getContentPane()); 97 if (result == JFileChooser.APPROVE_OPTION) {//判断是否为打开 98 fileName = chooser.getSelectedFile();//获取选择到的文件夹 99 chooseTextField.setText(fileName.getAbsolutePath());//设置选择文本域信息为文件夹的路径100 }101}102 103protected void do_deleteButton_actionPerformed(ActionEvent arg0) {//自定义删除按钮事件方法104 try { 105 List<String> list = new ArrayList<String>();//用于存储被删除的文件路径106 FileUtils.getFilePath(list, fileName);//调用删除文件的方法107 Iterator<String> iterator = list.iterator();//为list设置迭代器,用于遍历108 StringBuilder sb = new StringBuilder();//创建字符串,可实现添加功能109 sb.append(resultTextArea.getText() + "\n");//先获取当前删除文本域的信息110 while (iterator.hasNext()) {//判断是否有下一个111 sb.append(iterator.next());//添加被删除文件的路径112 sb.append("\n");//换行113 }114 resultTextArea.setText(sb.toString());//一口气输出到删除信息文本域115 FileUtils.deleteFiles(fileName);//最后调用删除方法,将文件夹下的所有文件夹和所有文件统统删除116 } catch(NullPointerException e) {//如果不设置文件夹会捕捉空指针异常117 System.out.println("不能为空");//控制台输出提示信息118 }119}120 }

谢谢、Thank you、Salamat Do(撒拉玛特朵)、あリがCám o*n(嘉蒙)とゥ(阿里嘎都)、감사합니다 (勘三哈咪瘩)、terima Kasih(得力马卡系)、kob-khun(寇布库恩)、dhanyavaad(达尼阿瓦德)、toda(透达)、te?ekkür ederim(特谢库尔埃戴里姆)、Dzie,kuje(以库以而)、Spasibo(思巴喜柏)、Danke(但可)、shokran(休克朗)、Obrigada(欧布哩嘎搭)、dank u(当Q)、Merci(梅呵西)、Gracias(格拉喜亚思)、Grazie(格啦姬)、Благодарности、Tak、Kiitos、Díky、Hvala、Mul?umesc、Takk、Ευχαριστ

FILE文件删除操作(删除指定文件夹下所有文件和文件夹包括子文件夹下所有文件和文件夹) 就是删除所有...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。