public static void delete(File file){
try{
if(file.exists()){
if(file.isFile()){
file.delete();
}else if(file.isDirectory()){
File files[] = file.listFiles();
for(int i=0;i<files.length;i++){
files[i].delete();
}
}
file.delete();
}else{
System.out.println("所删除的文件不存在!"+'\n');
}
}
catch(Exception e){
System.out.print("unable to delete the folder!");
}
}
这个是delete的方法,在main函数里面我这样调用的 File files = new File(des);//要删除的目录路径des = "C:/tempfile"
delete(files);单独运行delete方法的时候,可以删除tempfile文件夹,但是在main里面调用就删不掉~不知道是什么原因造成的呢?大家帮帮忙吧~
还有,你的程序中存在一个小问题,当你想删除目录的时候,你曾试图先将目录中的文件及子目录删除,但是,如果子目录里面还有东东,嘿嘿,就不行了.可以使用递归算法,或者用循环及自建堆栈实现.
File files = new File("d:/tmp");
delete(files);
} public static void delete(File file) {
try {
if (file.exists()) {
if (file.isFile()) {
file.delete();
} else if (file.isDirectory()) {
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++) {
files[i].delete();
}
}
file.delete();
} else {
System.out.println("所删除的文件不存在!" + '\n');
}
} catch (Exception e) {
System.out.print("unable to delete the folder!");
}
}可以删掉啊
public class Test4{
public static void main(String[] args){
File files = new File("E:\\java\\解答\\123.txt");//要删除的目录路径des = "C:/tempfile"
delete(files);
}
public static void delete(File file){
try{
if(file.exists()){
if(file.isFile()){
file.delete();
}else if(file.isDirectory()){
File files[] = file.listFiles();
for(int i=0;i<files.length;i++){
files[i].delete();
}
}
file.delete();
}else{
System.out.println("所删除的文件不存在!"+'\n');
}
}
catch(Exception e){
System.out.print("unable to delete the folder!");
}
}
}//刚试了下可以额...没错吧..
1、main()是程序的入口,你入口没有怎么来单独运行该函数的?
2、有可能文件下下面还有文件夹,所以因该用递归来进行处理。稍微改了下,你可以参考下。public class TestDemo06 { public static void main(String args[]) {
File file = new File("G:\\kstest\\tmp");
delete(file); } public static void delete(File file) {
try {
if (file.exists()) {
if (file.isFile()) {
file.delete();
} else if (file.isDirectory()) {
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++) {
delete(files[i]);
}
file.delete();
}
} else {
System.out.println("所删除的文件不存在!" + '\n');
}
} catch (Exception e) {
System.out.print("unable to delete the folder!");
}
}}
发现问题了,是因为files[i].delete不起作用,换成递归的delete(files[i])就解决了~