Ich zeige euch jetzt erst mal, was ich hier habe:
} else if (jrb == jrb1) {
append("jrb1");
int i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (anfang.startsWith("uvwxyz") || anfang.matches("^t\\d{3,4}$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("t%04d", i) + ende);
}
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (anfang.matches("^t\\d{4,4}$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("t%03d", i) + ende);
}
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
} else if (jrb == jrb2) {
append("jrb2");
int i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (anfang.startsWith("uvwxyz") || anfang.matches("^x\\d{3,4}$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("x%04d", i) + ende);
}
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (anfang.matches("^x\\d{4,4}$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("x%03d", i) + ende);
}
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
} else if (jrb == jrb3) {
append("jrb3");
int i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (!anfang.startsWith("uvwxyz") && !anfang.startsWith("uvwxyz2") && !anfang.matches("^[tx]\\d{3,4}$")) {
if (anfang.matches("^na\\d{3,3}_.*$")) {
anfang = anfang.substring(6);
} else if (anfang.matches("^na\\d{4,4}_.*$")) {
anfang = anfang.substring(7);
} else if (anfang.matches("^na_\\d{3,3}_.*$")) {
anfang = anfang.substring(7);
} else if (anfang.matches("^na_\\d{4,4}_.*$")) {
anfang = anfang.substring(8);
}
Pattern p1 = Pattern.compile("[\\w-]+");
Matcher m1 = p1.matcher(anfang.toLowerCase());
StringBuilder sb1 = new StringBuilder();
while (m1.find()) {
sb1.append(m1.group());
}
Pattern p2 = Pattern.compile("^[\\d_-]*(.*?)[\\d_-]*$");
Matcher m2 = p2.matcher(sb1);
StringBuilder sb2 = new StringBuilder();
if (m2.find()) {
sb2.append(m2.group(1));
}
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("na_%04d_", i) + sb2 + ende);
}
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (anfang.matches("^na_\\d{4,4}_.*$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("na_%03d_", i) + anfang.substring(8) + ende);
}
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
} else if (jrb == jrb4) {
append("jrb4");
int i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (anfang.matches("^\\d{3,3}-.*$")) {
anfang = anfang.substring(4);
} else if (anfang.matches("^\\d{4,4}-.*$")) {
anfang = anfang.substring(5);
}
Pattern p2 = Pattern.compile("^[\\d_-]*(.*?)[\\d_-]*$");
Matcher m2 = p2.matcher(anfang);
StringBuilder sb2 = new StringBuilder();
if (m2.find()) {
sb2.append(m2.group(1));
}
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("%04d-", i) + sb2 + ende);
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (anfang.matches("^\\d{4,4}-.*$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("%03d-", i) + anfang.substring(5) + ende);
}
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
}```
Jetzt das Problem: Das Ganze funktioniert nicht. Z. B. soll eine Datei in na_0595_uvwxyz.jpg umbenannt werden, und anschließend in na_595_uvwxyz.jpg . Aber alle Files in dem File-Array fa ändern sich nach der Umbenennungsanweisung `file.renameTo(newFile);` natürlich nicht. Problem: Jetzt hat er mir alle Dateien in zwei Ordnern falsch umbenannt. :(
Ich bin dran, nachher hab' ich's wohl.
Edit: Damit geht's jetzt:
``` auswahl.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
jfc.showOpenDialog(jf);
}
});
start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
File folder = jfc.getSelectedFile();
JRadioButton jrb = null;
for (Enumeration<AbstractButton> eab = bg.getElements(); eab.hasMoreElements();) {
AbstractButton ab = eab.nextElement();
if (ab.isSelected()) {
jrb = (JRadioButton) ab;
break;
}
}
if (folder == null || jrb == null || folder.getParent() == null) {
return;
}
File[] fa = folder.listFiles();
Arrays.sort(fa, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return Long.valueOf(o1.lastModified()).compareTo(o2.lastModified());
}
});
for (File file : fa) {
append(file);
}
if (false) {
} else if (jrb == jrb1) {
append("jrb1");
} else if (jrb == jrb2) {
append("jrb2");
} else if (jrb == jrb3) {
append("jrb3");
} else if (jrb == jrb4) {
append("jrb4");
} else if (jrb == jrb5) {
append("jrb5");
int i = 1;
for (File file : fa) {
if (file.isFile() && file.canWrite()) {
String name = file.getName().trim();
String anfang = name.substring(0, name.length() - 4).trim();
String ende = name.substring(name.length() - 4);
File newFile = null;
if (anfang.matches("^t\\d{4,4}$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("t%03d", i) + ende);
} else if (anfang.matches("^x\\d{4,4}$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("x%03d", i) + ende);
} else if (anfang.matches("^na_\\d{4,4}_.*$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("na_%03d_", i) + anfang.substring(8) + ende);
} else if (anfang.matches("^\\d{4,4}-.*$")) {
newFile = newFile = new File(file.getParentFile().toString() + File.separatorChar + String.format("%03d-", i) + anfang.substring(5) + ende);
}
if (newFile != null) {
append("file = " + file);
append("newFile = " + newFile);
file.renameTo(newFile);
i++;
}
}
}
}
}
});```