我很难让这段代码工作,基本上我的想法是让应用程序保存文件,如果文件存在,那么我希望它在末尾添加一个增加的数字,例如:file.txt
,file1.txt
,file2.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";
}
非常感谢任何帮助或建议。谢谢
答案 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";
}
即使代码很长也可以重构。但为了清楚起见,我一步一步地写了。希望对你有帮助。