黑马程序员技术交流社区
标题:
删除不了文件夹 求解
[打印本页]
作者:
Zenith
时间:
2014-1-4 16:47
标题:
删除不了文件夹 求解
import java.io.File;
/*
* 需求:删除指定的目录。(目录是带有目录或者文件的)
*/
public class DeleteFile {
public static void main(String[] args) {
File file = new File("test");
deleteFiles(file);
}
private static void deleteFiles(File file) {
File[] fileArray = file.listFiles();
if (fileArray != null) {
for (File f : fileArray) {
if (f.isDirectory()) {
deleteFiles(f);
} else {
System.out.println(f.getName() + "***" + f.delete());
}
}
}
}
}
作者:
L_t
时间:
2014-1-4 16:52
public class DeleteFile {
public static void main(String[] args) {
File file = new File("test");
deleteFiles(file);
}
private static void deleteFiles(File file) {
File[] fileArray = file.listFiles();
if (fileArray != null) {
for (File f : fileArray) {
if (f.isDirectory()) {
deleteFiles(f);
} else {
System.out.println(f.getName() + "***" + f.delete());
}
}
// 如果for循环结束,就表示目录下的文件被删除完毕。
System.out.println(file.getName() + "***" + file.delete());
}
}
}
你那程序只是删除了文件夹里的文件 并没有删除文件夹。
作者:
高亮亮
时间:
2014-1-4 16:59
关于删除文件夹问题.jpg
(66.13 KB, 下载次数: 16)
下载附件
2014-1-4 16:58 上传
import java.io.File;
/*
* 需求:删除指定的目录。(目录是带有目录或者文件的)
*/
public class DeleteFile {
public static void main(String[] args) {
File file = new File("test");
deleteFiles(file);
}
private static void deleteFiles(File file) {
File[] fileArray = file.listFiles();
if (fileArray != null) {//判断该file是否存在.
for (File f : fileArray) {
if (f.isDirectory()) {//判断是否为文件夹
deleteFiles(f);//是则递归.
} else {//不是,则删除该文件
System.out.println(f.getName() + "***" + f.delete());
}
}//此处你内存递归结束,跳出这个文件夹,没有对已经空了的文件夹进行操作.
System.out.println(file.getName()+"已空,进行删除"+file.delete());//所以这里需要将这个空了的文件夹进行删除.
}
}
}
复制代码
作者:
杨丽静
时间:
2014-1-4 17:08
你写的代码只是循环删除了文件夹里面的文件没有删除文件夹,代码少一句
public class DeleteFile {
public static void main(String[] args) {
File file = new File("test");
deleteFiles(file);
}
private static void deleteFiles(File file) {
File[] fileArray = file.listFiles();
if (fileArray != null) {
for (File f : fileArray) {
if (f.isDirectory()) {
deleteFiles(f);
} else {
System.out.println(f.getName() + "***" + f.delete());
}
}
}
file.delete();
}
}
你试试看这样对不对
作者:
李兴
时间:
2014-1-4 17:23
删除文件夹及内部内容的话需要考虑文件夹内部的文件属性,如果是文件夹就递归删除文件夹,如果是文件就删除文件。也得考虑文件夹中有多层文件夹的情况,判断一个文件时文件夹的话,先进入递归删除方法,出来递归后立马删除当前递归文件夹
代码如下
public static void main(String[] args) {
File file = new File("test");
deleteFiles(file);
}
private static void deleteFiles(File file) {
File[] fileArray = file.listFiles();
if (fileArray != null) {
for (File f : fileArray) {
if (f.isDirectory()) {
deleteFiles(f);
f.delete(); //这是删除文件夹中的文件夹
} else {
System.out.println(f.getName() + "***" + f.delete());
}
}
}
file.delete(); //此处为删除test文件夹
}
复制代码
希望采纳
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2