/*
*删除VC程序目录下的DEBUG文件夹
*节省磁盘控件
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
public class DeleteDebugFile extends JFrame implements ActionListener {
//构造函数
public DeleteDebugFile() {
setTitle("删除Debug目录");
setSize(300,150);
setLocation(300,200);
lname = new JLabel("输入路径:");
tname = new JTextField(20);
ok = new JButton("确定");
close = new JButton("关闭");
ok.addActionListener(this);
close.addActionListener(this);
Container cp = getContentPane();
JPanel pa = new JPanel();
JPanel pb = new JPanel();
pa.add(lname);
pa.add(tname);
pb.add(ok);
pb.add(close);
cp.add(pa,"North");
cp.add(pb,"South");
}
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource();
if(obj.equals(close))
System.exit(0);
if(obj.equals(ok)) {
String url = tname.getText().trim().toString();
File filedelete = new File(url);
DeleteFile(filedelete);
}
}
public void DeleteFile(File file) {
if(file.isDirectory()) { //如果是目录,先删除目录下的文件
File files[] = file.listFiles(); //获得目录下所有文件
for (int i = 0; i < files.length; i++) {
DeleteFile(files[i]);
}
}
/*
*这里为什么不能够删除掉Debug目录下的文件,
*去掉if可以删除目录下的所有文件
*/
if(file.getParent().toString().equals(deletename)) {
file.delete(); //删除Debug目录下的所有文件
}
}
public static void main(String args[]) {
DeleteDebugFile filedelete = new DeleteDebugFile();
filedelete.setVisible(true);
}
private JLabel lname;
private JTextField tname;
private JButton ok, close;
private final String deletename = "Debug";
}
这里, file.getParent().toString().equals(deletename)
file.getParent()返回的路径是 C:\fdf\Debug
当然不等于"Debug".要这样转换一下
String path = file.getParent();
path.substring(path.lastIndexOf("\\")+1, path.length());