2011-09-03 2 views
0

전체 디렉터리의 이름을 프로그래밍 방식으로 바꾸려고합니다. 디렉토리는 로컬 파일 시스템에 마운트 된 서버에 있습니다. 이 첫 번째 이름을 변경하는 경우에만 시도하는 지금로컬로 마운트 된 서버에서 파일의 이름을 바꾸는 방법은 무엇입니까?

public static void main(String[] args) { 
    File dir = new File("/Volumes/video/Serien/Scrubs/Season 1"); 
    System.out.println("Start renaming: " + dir); 

    String[] files = dir.list(); 
    for (String file : files) { 
     System.out.println("Old name: " + file); 
     File renamedFile = new File(file); 
     System.out.println(renamedFile.toString()); 
     boolean success = renamedFile.renameTo(new File("Test " + renamedFile.toString())); 
     System.out.println("New name: "+ renamedFile.toString()); 
     System.out.println(success); 
     break; 
    } 
} 

I,하지만 그럼에도 불구하고 false를 반환하고 이름을 변경하지 않습니다 :이 같은 수행을 시도하고있다.

어떤 힌트가 필요한가요? 나는 예외가 없다. 나는 서버가 인증을 요구하기 때문이라고 생각한다. renameTo()가 플랫폼에 의존하는 것 때문에 :

편집 나는 사자 OSX

+0

실제로 이름을 바꾸지 않으면 정확히 성공해야하는 이유는 무엇입니까? 이름을 변경하면 실제로 성공할 수 있습니다. – Bombe

+0

나는 이것을 분명히해야만했다. 이름을 변경하면 성공하지 못합니다. –

+0

http://stackoverflow.com/questions/1000183/reliable-file-renameto-alternative-on-windows에 흥미로운 해답이 몇 가지 있습니다. –

답변

2

가 fullpath에 + 당신은 이전 및 이름이 디렉토리 이름을 변경하고자하는 디렉토리 이름을 사용하십시오 사용하고 있습니다. 목록() 전체 경로없이 디렉터리 이름을 반환합니다 믿습니다. 전에도 비슷한 문제가 있었고 그렇게했을 때 효과가있었습니다. 잘하면 그게 당신을 위해 잘 작동합니다.

+0

이것이 실제 문제입니다. 그는 파일의 전체 경로를 지정하지 않습니다. –

관련 문제