gpt4 book ai didi

java - 如何按编号排列和重命名文件?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:17:04 24 4
gpt4 key购买 nike

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

例如:

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

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);
}
}
}

但这仅适用于 2 个文件位置之间的差异为 1 的情况。(例如 file_2file_4 之间)此方法不适用于 file_9file_12

最佳答案

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

关于java - 如何按编号排列和重命名文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39899418/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com