Как создать файл резервной копии, если файл существует - PullRequest
2 голосов
/ 16 мая 2019

Я хотел бы создать резервную копию backup_autoexec" + value + ".cfg моего файла autoexec.cfg, если он существует. Если уже есть и резервная копия, то следует увеличить значение номера. например backup1, backup2, backup3 ...

public class Backup {

    private int value1 = 0;
    private String value;
    private File file = new File("autoexec.cfg");
    private boolean exists = file.exists();
    private Path backup;
    private Path auto = Paths.get("autoexec.cfg");

    public void kopie() {

        if(exists) {        
            while(exists) {
                System.out.println("test");
                value1 += 1;
                value = String.valueOf(value1);
                file = new File("backup_autoexec" + value +                   ".cfg");
                backup = Paths.get("backup_autoexec" + value + ".cfg");

            }

                try {
                    Files.move(auto, backup);
                }
                catch (IOException f) {
                    f.printStackTrace();
                }   
        }
    }
}

атм, он навсегда останется в цикле while, и я не знаю почему.

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Вы проверяете существование только один раз - для первого файла.Вот минимальный рабочий пример:

int index = 1;
while (true) {
    final String source = "autoexec" + index + ".txt";
    if (new File(source).exists()) {            
        Files.copy(Paths.get(source), Paths.get(path + "\\backup_file" + index + ".txt")); 
        index++;
    } else {
        break;
    }
}
0 голосов
/ 16 мая 2019

он должен выйти из цикла, если не найден файл с существующим именем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...