Может ли Java удалить все файлы и папки компьютера? - PullRequest
1 голос
/ 04 июля 2019

Мне просто любопытно (но не хочет пробовать на моем компьютере), что произойдет, если я запусту этот код на 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 и будетудалить все на моем компьютере?Или операционная система не позволит мне удалить системные файлы?

Большое вам спасибо!

1 Ответ

1 голос
/ 04 июля 2019

Хорошо, это заинтересовало меня, и я попробовал это на контейнере lxc.Теперь это был не научный тест, но лучше, чем ничего правильного.

Ну, я бы сказал, что я получил смешанные результаты.Если вы попытаетесь удалить файлы с помощью Java, а не системные, то вы будете делать свою работу.Как только вы начинаете убивать свою систему, все меняется.Java не позволит вам удалить что-либо из вашего корневого каталога, но я успешно удалил свою папку пользователя (/home/ubuntusuer).Увы, я не повредил систему.

Существует механизм, который не дает вам удалить всю систему.Таким образом, поведение не будет точно таким же по сравнению с rm -rf /, но вы все равно можете удалить с него много вещей.

...