相信大多数人都使用过 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