JApp: 删除指定目录_v1

相信大多数人都使用过 svn 来管理代码,协同团队开发,时而需要 add,时而需要 ci.


程序员在命令行中享受着无比的快乐,经过 svn 管理的项目,文件夹下面都会有一个 .svn 的文件夹,当你想删除他的时候,总是觉得路很漫长........


也是出于此目的,自己写了一个删除目录的 Java App.


jar 文件下载地址:http://download.csdn.net/detail/androidbluetooth/4020452


写这篇博客有几个目的:


1. 分享 Java 的便利


2. 分享工作的乐趣


3. 希望交更多的朋友


4. 不是炫耀,因为这个软件确实没什么值得炫耀的地方


运行效果:




源码分享一下:

FileUtils.java


package com.mark.java.app;

import java.io.File;

public class FileUtils {

    public static void deleteSpecifiedFile(File srcFile, String fileName) {
        if (!srcFile.exists()) {
            System.out.println("您指定目录不存在!");
            return;
        }
        if (srcFile.isDirectory()) {
            File[] allFiles = srcFile.listFiles();
            for (File file : allFiles) {
                if (file.isDirectory()) {
                    if (file.getName().equalsIgnoreCase(fileName)) {
                        deleteFile(file);
                        continue;
                    }
                    deleteSpecifiedFile(file, fileName);
                }
            }
        } else {
            System.out.println("您指定的不是目录!请重新指定!");
        }
    }

    public static void deleteFile(File srcFile) {
        if (srcFile.exists()) {
            if (srcFile.isFile()) { // 判断是不是一个正常的文件(目录、点开头的文件如.svn也不是正常文件)
                srcFile.delete();
            } else if (srcFile.isDirectory()) {
                File[] allFiles = srcFile.listFiles();
                for (File file : allFiles) {
                    deleteFile(file);
                }
            }
            // 删除(正常、以及非正常的)文件
            srcFile.delete();
        } else {
            System.out.println("文件不存在,删除失败!");
        }
    }
}


MainView.java


package com.mark.java.app;

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JFrame;

@SuppressWarnings("serial")
public class MainView extends JFrame {
    
    public static void main(String[] args) {
        MainView ui = new MainView();
        ui.setTitle("mark-删除文件小窗口");
        ui.setBounds(400, 200, 400, 150);
        // 创建一个布局管理对象
        FlowLayout fl = new FlowLayout();
        // 设置窗体的布局管理器
        ui.setLayout(fl);
        JLabel directoryLabel = new JLabel("目录:");
        final JTextField content = new JTextField(30);
        JLabel fileLabel = new JLabel("文件:");
        final JTextField fileName = new JTextField(30);
        fileName.setText(".svn");
        JButton selectButton = new JButton("选择目录");
        selectButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                JFileChooser chooser = new JFileChooser();
                chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
                chooser.setAcceptAllFileFilterUsed(false);// 去掉allfiles
                chooser.setDialogType(JFileChooser.APPROVE_OPTION);
                chooser.showOpenDialog(null);
                File file = chooser.getSelectedFile();
                if (file != null) {
                    String filePath = file.getAbsolutePath();
                    if (filePath != null && !filePath.equals("")) {
                        content.setText(chooser.getSelectedFile().getAbsolutePath());
                    }
                } else {
                    return;
                }
            }
        });
        JButton deleteButton = new JButton("删除文件");
        deleteButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String filePath = content.getText();
                File srcFile = new File(filePath);
                String specifiedFileName = fileName.getText();
                FileUtils.deleteSpecifiedFile(srcFile, specifiedFileName);
            }
        });
        // 添加文本标签、文本输入框、按钮到窗体上
        ui.add(directoryLabel);
        ui.add(content);
        ui.add(fileLabel);
        ui.add(fileName);
        ui.add(selectButton);
        ui.add(deleteButton);
        // 点击关闭按钮时窗体退出程序
        ui.setDefaultCloseOperation(3);
        // 将窗体显示在屏幕上
        ui.setVisible(true);
    }
}


这个 app,还有许多地方需要优化,如果你有兴趣可以尝试一下,但是记得告诉我一声,嘿嘿!

顺便分享一下,如何使用 eclipse 导出 jar 文件(如果你喜欢命令行的方式,就可以不往下看了!)。


在您的 java 项目右键选择 Export,然后出现:




选择 java/ Runnable Jar file,点击 Next




ok, 填写 main 方法所在的类,选择导出的位置、以及填写导出的文件名,点击 Filish 即可。


源码下载地址:http://download.csdn.net/detail/androidbluetooth/4020470








©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页