在文件的最后一个文件中使用数字增量保存文件

时间:2018-01-09 13:23:30

标签: java android loops android-studio

我很难让这段代码工作,基本上我的想法是让应用程序保存文件,如果文件存在,那么我希望它在末尾添加一个增加的数字,例如:file.txtfile1.txtfile2.txt

但它保存了第一个文件然后应用程序崩溃,这与while循环有关,我还没有尝试过for函数。

// txtTiltetosave = The Title that is used by the save function (this works)

int num = 0;
File myFile = new File("mydir);
if (myFile.exists()) {
       while (myFile.exists()) {
           txtTitletosave = "file"+(num++);
       }
} else {
       txtTitletosave = "file";
}

非常感谢任何帮助或建议。谢谢

3 个答案:

答案 0 :(得分:1)

你可以尝试这个 - 最初使用此代码查找给定目录中有多少文件,如果没有,则创建一个新文件。

File file = new File("C:/MyFolder/");
if(!file.exists()){
  txtTitletosave = "file";
}
else {
int count = file.listFiles().length;
txtTitletosave = "file"+count;
}

如果这有帮助,请告诉我,但是还没试过。

答案 1 :(得分:1)

感谢所有帮助过这两个答案的人,没有工作(对我而言)但他们肯定给了我一个想法,这就是我想要的方式。

File myFile = new File(Environment.getExternalStorageDirectory() + File.separator + "/mydir" + "file.txt");
  if (!myFile.exists()) {
        txtTitletosave = "file";
  } else {
       int count = new File(Environment.getExternalStorageDirectory() + File.separator + "/mydir").list().length;
       txtTitletosave = "file"+count;
  }

答案 2 :(得分:0)

使用下面的代码来帮助您

   File myFile = new File("mydir");
    String txtTitletosave;
    if (myFile.exists()) {
        String [] array = myFile.getName().split("\\.");
        String fileName = array[0];
        String lastNumber = fileName.substring(fileName.length() -1);
        int numberToIncrease = Integer.parseInt(lastNumber);

            txtTitletosave = "file"+(++numberToIncrease);

    } else {
        txtTitletosave = "file";
    }

即使代码很长也可以重构。但为了清楚起见,我一步一步地写了。希望对你有帮助。