Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果文件存在,如何创建备份文件_Java_File_While Loop - Fatal编程技术网

Java 如果文件存在,如何创建备份文件

Java 如果文件存在,如何创建备份文件,java,file,while-loop,Java,File,While Loop,我想为我的文件autoexec.cfg创建一个备份backup\u autoexec“+value+”.cfg,如果它存在的话。如果已经存在和备份,则应增加值编号。例如backup1,backup2,backup3 public class Backup { private int value1 = 0; private String value; private File file = new File("autoexec.cfg"); private boo

我想为我的文件
autoexec.cfg
创建一个备份
backup\u autoexec“+value+”.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();
                }   
        }
    }
}

atm将永远挂在while循环中,我不知道为什么。

您只检查一次存在性-第一个文件。下面是一个简单的工作示例:

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;
    }
}

如果找不到具有现有名称的文件,则应退出循环

您何时尝试退出循环?我看不到任何地方
存在
更改实际上,您在(存在)时获得了
,但
存在
从未被修改。