重命名文件(如果存在于Android中)

时间:2014-11-11 11:44:08

标签: android

我一直在看论坛并找到了一些提示,但没有一个让我找到最终解决方案。如果可能的话,我需要代码。

每次关闭我的应用程序时,我都会创建一个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();
    }
}

提前感谢大家!

1 个答案:

答案 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");