java - Java可以删除计算机的所有文件和文件夹吗?
问题描述
我只是好奇(但不愿意在我的电脑上尝试)如果我在 Java 上运行这段代码会发生什么?
private static void deleteAll(File file)
{
for(File f : file.listFiles())
{
if(f.isFile())
{
f.delete();
}
else
{
deleteAll(f);
f.delete();
}
}
}
public static void main(String[] args) {
File file = new File("/home");
deleteAll(file);
}
这是否等同于 rm -rf / 在 linux 中并且会删除我计算机上的所有内容?还是操作系统会阻止我删除系统文件?
太感谢了!
解决方案
好的,这引起了我的兴趣,我在 lxc 容器上进行了尝试。现在这不是一个科学测试,但总比没有好。
好吧,我会说我得到了好坏参半的结果。如果您尝试使用 java 正常删除文件,而不是系统文件,那么您将完成您的工作。一旦你开始杀死你的系统,那么事情就会改变。Java 不允许您从根目录中删除任何内容,但我确实成功地删除了我的用户文件夹 ( /home/ubuntusuer
)。我没有破坏系统,唉。
有一种机制可以阻止您删除整个系统。因此,与 相比,行为不会完全相同rm -rf /
,但您仍然可以使用它删除很多东西。
推荐阅读
- wordpress - Wordpress 模板分配未按预期工作
- html - SVG:有效应用 inline filter="url(....)" on
- macos - brew 旧版本的 mysql 在 cmd 行不可用
- laravel - Laravel 符号链接和 cPanel
- java - XMLStreamReader 无法读取其中包含换行符的字段,而是取最后一行
- c# - 具有多个参数的 xamarin 命令
- c++ - struct object 在 main 函数中在哪里获取内存?
- java - Google 协议缓冲区未在构建器中设置值
- r - lubridate:解析“27.10.2013 02A:00”形式的日期(夏令时)
- scala - 断言返回类型为 Future[Unit] 的 scala 方法的最佳方法是什么