Java可以删除计算机的所有文件和文件夹吗?

时间:2019-07-04 08:22:05

标签: java recursion delete-file

我很好奇(但不愿意在计算机上尝试)如果我在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);
    }

这等效于linux中的rm -rf /并会删除计算机上的所有内容吗?还是操作系统会阻止我删除系统文件?

非常感谢您!

1 个答案:

答案 0 :(得分:1)

好吧,这引起了我的兴趣,我在lxc容器上尝试了它。现在这不是科学测试,但总比没有好。

好吧,我想说我得出的结果好坏参半。如果您尝试使用Java而不是系统文件正常删除文件,那么您将可以完成工作。一旦您开始杀死系统,一切都会改变。 Java不允许您从根目录中删除任何内容,但是我确实成功删除了我的用户文件夹(/home/ubuntusuer)。我没有破坏系统,las。

有一种机制可以阻止您删除整个系统。因此,其行为与rm -rf /并不完全相同,但是您仍然可以用它删除很多东西。