lol*_*ola 77 java file-io delete-directory
枚举目录后,我现在需要删除所有文件.
我用了:
final File[] files = outputFolder.listFiles();
files.delete();
Run Code Online (Sandbox Code Playgroud)
但是这还没有删除目录.
NCo*_*ode 117
您必须为每个文件执行此操作:
public static void deleteFolder(File folder) {
File[] files = folder.listFiles();
if(files!=null) { //some JVMs return null for empty dirs
for(File f: files) {
if(f.isDirectory()) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete();
}
Run Code Online (Sandbox Code Playgroud)
然后打电话
deleteFolder(outputFolder);
Run Code Online (Sandbox Code Playgroud)
DHR*_*SAL 93
要删除包含文件的文件夹,不需要循环或递归搜索.你可以直接使用:
FileUtils.deleteDirectory(<File object of directory>);
Run Code Online (Sandbox Code Playgroud)
此功能将目录删除文件夹及其中的所有文件.
容易派:)
Boz*_*zho 10
在删除之前,必须从目录中删除所有文件.
有第三方库有很多常用的实用程序,包括为您执行此操作的实用程序:
你不能删除阵列!这应该更好:
for (File f : files) f.delete();
Run Code Online (Sandbox Code Playgroud)
但如果文件夹不为空,它将无法工作.对于这种情况,您需要以递归方式下降到文件夹层次结构中并删除所有内容.是的,遗憾的是Java默认情况下无法做到这一点......
小智 5
这是一种无需库即可解决问题的可行解决方案:
public static boolean delete(File file) {
File[] flist = null;
if(file == null){
return false;
}
if (file.isFile()) {
return file.delete();
}
if (!file.isDirectory()) {
return false;
}
flist = file.listFiles();
if (flist != null && flist.length > 0) {
for (File f : flist) {
if (!delete(f)) {
return false;
}
}
}
return file.delete();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128924 次 |
| 最近记录: |