Hallo,
ich bin ganz neu im Java-Forum und habe eine Frage zur Umbenennung von Dateien.
Habe mir ein paar Sachen, unter Anderem den API-Eintrag durchgelesen.
Mit meinem Code wird eine Datei nciht umbenannt, sondern entfernt.
Der verwendete Aufruf von renameTo (Zeile 63) in meiner Methode replacer gibt mir true zurück.
Woran liegt es, dass es nicht klappt?
Gruß
ich bin ganz neu im Java-Forum und habe eine Frage zur Umbenennung von Dateien.
Habe mir ein paar Sachen, unter Anderem den API-Eintrag durchgelesen.
Mit meinem Code wird eine Datei nciht umbenannt, sondern entfernt.
Der verwendete Aufruf von renameTo (Zeile 63) in meiner Methode replacer gibt mir true zurück.
Java:
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
public class FilenameChanger
{
static ArrayList<String> files = new ArrayList<String>();
static HashMap<String, String> umlauts = new HashMap<String, String>();
public static void main(String[] args)
{
umlauts.put("ä", "ae");
umlauts.put("Ä", "Ae");
umlauts.put("ö", "oe");
umlauts.put("Ö", "Oe");
umlauts.put("ü", "ue");
umlauts.put("Ü", "Ue");
umlauts.put("ß", "ss");
// browseFiles(new File("/media/"));
browseFiles(new File("/home/fasp/Desktop"));
//output of found files
for (String s : files)
{
System.out.println(s);
}
}
//walks through all files and folders of the passed root
private static void browseFiles(File root)
{
File[] content = root.listFiles();
for (File f : content)
{
if (f.isDirectory())
{
browseFiles(f);
}
// action on found files:
else if (f.isFile())
{
replacer(f);
//adder(f);
}
}
}
//replaces all umlauts in f's name with common letters
private static void replacer(File f)
{
for (String umlaut : umlauts.keySet())
{
if (f.getName().contains(umlaut))
{
String newName = f.getName().replaceAll(umlaut,
umlauts.get(umlaut));
boolean success=f.renameTo(new File(newName));
System.out.println(f.getAbsolutePath()+" renamed: "+success);
int debug = 42;
}
}
}
//adds f to the list if it matches the specified criterium
private static void adder(File f)
{
for (String umlaut : umlauts.keySet())
{
if (f.getName().contains(umlaut))
{
files.add(f.getAbsolutePath());
}
}
}
}
Woran liegt es, dass es nicht klappt?
Gruß
Zuletzt bearbeitet: