我一直在看论坛并找到了一些提示,但没有一个让我找到最终解决方案。如果可能的话,我需要代码。
每次关闭我的应用程序时,我都会创建一个txt文件,而我的目标是重命名该文件,以防它已经存在,格式如下:
file.txt - file(1).txt - file(2).txt
到目前为止,我得到的是以下内容:
file.txt - file.txt1 - file.txt12
我的代码如下:
int num = 0;
public void createFile(String name) {
try {
String filename = name;
File myFile = new File(Environment.getExternalStorageDirectory(), filename);
if (!myFile.exists()) {
myFile.createNewFile();
} else {
num++;
createFile(filename + (num));
}
} catch (IOException e) {
e.printStackTrace();
}
}
提前感谢大家!
答案 0 :(得分:2)
您的filename
变量包含文件的全名(即file.txt)。所以当你这样做时:
createFile(filename + (num));
它只是在文件名的末尾添加数字。
你应该这样做:
int num = 0;
public void createFile(String prefix) {
try {
String filename = prefix + "(" + num + ").txt"; //create the correct filename
File myFile = new File(Environment.getExternalStorageDirectory(), filename);
if (!myFile.exists()) {
myFile.createNewFile();
} else {
num++; //increase the file index
createFile(prefix); //simply call this method again with the same prefix
}
} catch (IOException e) {
e.printStackTrace();
}
}
然后就这样称呼它:
createFile("file");