Java File.renameTo (File) nie działa

Próbuję wyświetlić zawartość katalogu i zmienić nazwy niektórych plików.

public void run(String dirName) {
    try {
        File parDir = new File(dirName);
        File[] dirContents = parDir.listFiles();

        // Rename if necessary
        for(File f : dirContents) {
            System.out.println("f is:\n" + f.toString());
            String name = f.getName();
            String subbedName = name.replaceAll("\uFFFD", "_");

            System.out.println("\n" + "name = " + name + ", subbedName = " + subbedName + "\n");

            if(!name.equals(subbedName)) {
                File newFile = new File(f.getParentFile(), subbedName);
                System.out.println("newFile is:\n" + newFile.toString());
                if(!f.renameTo(newFile))
                    System.out.println("Tried to change file name but couldn't.");
            }
        }
    }
    catch(Exception exc1) {
        System.out.println("Something happened while listing and renaming directory contents: " + exc1.getMessage());
    }
}

Kiedy to uruchomię, dostaję „Tried to change file name but couldn't." Ja nieuwierzyć że Java uważa te pliki za „otwarte”, więc nie sądzę, żeby to był powód. Nawet pobiegłemchmod 777 myDir gdziemyDir jest wartościądirName ciąg przekazany dorun metoda.

Czego mi tu brakuje? Dlaczego Java nie zmienia nazw tych plików? To są maszyny CentOS.

Edytować: Dodano wydruki dla obuf inewFile, co jest następujące:

f is:
/root/path/to/mydir/test�.txt

newFile is:
/root/path/to/mydir/test_.txt

questionAnswers(3)

yourAnswerToTheQuestion