2012-10-19 3 views
1

동일한 디렉터리에 파일을 복사하여 붙여 넣을 때 Windows에서 얻는 것과 비슷한 동작을 얻으려고합니다. 예컨대 들어복사 된 파일의 파일 이름 생성

, 당신이 복사 한 경우 /이 foo Copy.txt을 만들 것입니다, foo.txt라는 파일을 붙여 넣기 한 번 더 붙여 넣을 경우, 그것은 foo Copy(2).txt를 만들고 당신이/복사하면 foo Copy.txt, foo Copy Copy.txt가 만들어 붙여 넣습니다.

이 작업을 수행하는 Java 유틸리티 기능이 있습니까? 나는 File.createTempFile을 보았지만 그것이 생성하는 파일 이름은 너무 길며 UID와 같은 부분 문자열을 포함합니다.

+5

내가 어떤 API를 인식하지 오전 쓸 수 있지만, '(file.exists이)가'... – dngfng

답변

0

"showSaveDialog"방법과 함께 FileChooser를 사용하면 java가 기존 파일에 OS 동작을 사용하기 때문에 원하는 결과를 얻을 수 있습니다.

+0

내가 원하지 않는 스스로를 작성하는 한 정도로 간단 할 것 사용자가 대화 상자에 아무 것도 입력하지 않아도됩니다. – Ash

0

경우에 따라 작업을 먼저 수행하면 API에 대한 감사를 느낄 수 있습니다. 그런 다음 당신은 당신의 자신의 유틸리티 메소드

File original = new File("build.xml"); 
String path = original.getAbsoluteFile().getParent(); 
String name = original.getName(); 
String ext = name.substring(name.indexOf(".")); 
name = name.substring(0, name.indexOf(".")); 
name = path + File.separator + name; 

int index = 1; 
File copy = new File(name + " (" + index + ")" + ext); 
while (copy.exists()) { 
    index++; 
    copy = new File(name + " (" + index + ")" + ext); 
} 
System.out.println(copy); 
+0

그게 아니오입니까? 어쨌든 루프 작동 방식을 알려 주셔서 감사합니다. Ash

+1

네, 그건 * 아니 *,하지만 그렇게 나를 대답에 넣어 못하게;) – MadProgrammer

+0

롤 충분히. – Ash

관련 문제