我建了一个删除文件的功能,以下是我写的代码;在路径指定的路径目录里面有文件还有目录,请问为什么输出的时候都是:“删除文件”
import java.io.File;
public class Recursion2
{
public File method(File f)
{
/*
* 判断是否为文件目录
*/
if (f.exists() == false)
{
System.out.println("路径文件不存在");
return null;
}
/*
* 删除文件目录
*/
if (delete(f) == true)
{
return null;
}
else
{
File[] files = f.listFiles();
for (File file : files)
{
method(file);
}
return method(f);
}
}
private boolean delete(File file)
{
boolean jubge = file.delete();
if (jubge)
{
if (file.isDirectory())
{
System.out.println("删除目录 " + file);
}
else
{
System.out.println("删除文件 " + file);
}
}
return jubge;
}
public static void main(String[] args)
{
Recursion2 recursion = new Recursion2();
File f = new File("D:/Desktop/火狐");
recursion.method(f);
System.exit(0);
}
}
以下是文件路径:
以下是部分输出结果:
删除文件 D:\Desktop\火狐\Mozilla Firefox\omni.ja
删除文件 D:\Desktop\火狐\Mozilla Firefox\pingsender.exe
删除文件 D:\Desktop\火狐\Mozilla Firefox\platform.ini
删除文件 D:\Desktop\火狐\Mozilla Firefox\plugin-container.exe
删除文件 D:\Desktop\火狐\Mozilla Firefox\plugin-container.exe.sig
删除文件 D:\Desktop\火狐\Mozilla Firefox\plugin-hang-ui.exe
删除文件 D:\Desktop\火狐\Mozilla Firefox\precomplete
删除文件 D:\Desktop\火狐\Mozilla Firefox\qipcap64.dll
删除文件 D:\Desktop\火狐\Mozilla Firefox\removed-files
删除文件 D:\Desktop\火狐\Mozilla Firefox\softokn3.chk
删除文件 D:\Desktop\火狐\Mozilla Firefox\softokn3.dll
删除文件 D:\Desktop\火狐\Mozilla Firefox\ucrtbase.dll
删除文件 D:\Desktop\火狐\Mozilla Firefox\uninstall\helper.exe
删除文件 D:\Desktop\火狐\Mozilla Firefox\uninstall\shortcuts_log.ini
删除文件 D:\Desktop\火狐\Mozilla Firefox\uninstall\uninstall.log
删除文件 D:\Desktop\火狐\Mozilla Firefox\uninstall\uninstall.update
删除文件 D:\Desktop\火狐\Mozilla Firefox\uninstall
删除文件 D:\Desktop\火狐\Mozilla Firefox\update-settings.ini
删除文件 D:\Desktop\火狐\Mozilla Firefox\updater.exe
删除文件 D:\Desktop\火狐\Mozilla Firefox\updater.ini
删除文件 D:\Desktop\火狐\Mozilla Firefox\vcruntime140.dll
删除文件 D:\Desktop\火狐\Mozilla Firefox\xul.dll
删除文件 D:\Desktop\火狐\Mozilla Firefox\xul.dll.sig
删除文件 D:\Desktop\火狐\Mozilla Firefox
删除文件 D:\Desktop\火狐
依据@caozhy的回答我把method改写成以下,结果还是一样啊?
public void method(File f)
{
/*
* 判断是否为文件目录
*/
if (f.exists() == false)
{
System.out.println("路径文件不存在");
return;
}
/*
* 删除文件目录
*/
if (f.isFile() || f.list().length == 0)
{
delete(f);
}
else
{
File[] files = f.listFiles();
for (File file : files)
{
method(file);
delete(file);
}
delete(f);
}
}