如何根据号码安排和重命名文件?

时间:2016-10-06 15:00:59

标签: java android algorithm file file-rename

我想先排列文件,然后根据文件名中的数字指定的顺序重命名。

例如:

我有一个包含大量不同文件的文件夹。文件名由末尾的数字表示。我们假设我们在该文件夹中有以下文件:

file_1.xml  // Remains unchanged
file_2.xml  // Remains unchanged
file_4.xml  // Should be renamed to "file_3.xml"
file_9.xml  // Should be renamed to "file_4.xml"
file_12.xml // Should be renamed to "file_5.xml"

我该怎么做?我想创建一个可靠的干净方法,按顺序重命名文件。

到目前为止:

private void updateFilesName() {
    for (int i = 1; i <= filesAmount; i++) {
        File file1 = new File(getFilesDir().getParent() + "/file_" + i + ".xml");
        File file2 = new File(getFilesDir().getParent() + "/file_" + String.valueOf(i + 1) + ".xml");
        if (!file1.exists() && file2.exists()) {
            file2.renameTo(file1);
        }
    }
}

但只有当两个文件位置之间的差异为1时才有效。(例如file_2file_4之间)此方法不适用于file_9和{{1 }}

2 个答案:

答案 0 :(得分:1)

respond_to_missing?

答案 1 :(得分:0)

    // Iterate all files under the directory and check the file name
    File folder = new File("urdirectory");
    File[] listOfFiles = folder.listFiles();


    for (int i = 0; i < listOfFiles.length; i++) {
      if (listOfFiles[i].isFile()) {
        if (!listOfFiles[i].getName().equals("file_" + (i+1) + ".xml")) {
            File tempFile1 = listOfFiles[i];
            File tempFile2 = new File("urdirectory" + "/file_" + String.valueOf(i + 1) + ".xml");
            tempFile.renameTo(tempFile2);
        }
    }