2013-03-05 8 views
0

당신이 나를 위해 몇 가지 코드를 볼 수 있습니다 기대했다. 필자의 원래 의도는 백업중인 파일로 복사되는 파일의 이름을 바꾸는 것이 었습니다. (따라서 문자열 이름 = origfile.getName();Files.copy 파일 이름 바꾸기

이 있었다 내 코드 : 이제

File file2 = new File(name); 
File srcfile = sourcepath.toFile(); 
srcfile.renameTo(file2); 

, 몇 후, 그래서 내가 IOException이 오류를 받기 시작했다 잠시 후, 점까지 일 . 고민의 시간 나는 포기하고 단지 이름을 바꾸는 부분 삭제 된

소호 및 복사 할 때 여전히 파일 이름을 변경 보라

을 이제 내 질문 :..? 그것을 Files.copy합니까 몇 가지 이상한 일이 있습니까 여기서 일어나는거야? 내가하고 싶은 일을 정확히하고, b 나는 지옥처럼 당황하고있다. 내 코드가 작동하는 이유는 무엇입니까?

는 그래 나는 경우가 고장 나 작동을 멈 춥니 다, 알고 싶어요. 나는 일을하고 왜 그런지 알 수 없다! 편집

: 게시 할 때, 내가 좀 더 내 질문을 제기하자 러시의 비트에

미안했다 명확 :

내 의도는 내 원본 경로 파일의 원래 이름으로 이름을 바꾼 것이 었습니다

백업 중입니다. 이름을 바꿀 코드가 있었지만 IOException을 던져서 삭제했습니다. 필자는 Files.Copy 만 사용 했으므로 sourcepath는 원래 값을 유지하고 for 루프의 각 인스턴스를 복사한다고 가정했습니다. 그러나 아니요, 백업 된 각 파일의 원본 이름을 완벽하게 바꿉니다. 어디서 어떻게?

+0

나는 무엇이 문제인지 명확하지 않습니다. –

+0

파일을 지정하는 코드가 없을 때 내 파일의 이름이 변경되는 이유를 알고 싶습니다. 복사 할 때 sourcepath 파일의 이름이 변경되는 이유는 무엇입니까? (이름 바꾸기를 원하지만 내 이름 바꾸기 코드가 작동하지 않아 삭제했습니다.) –

+0

... 파일 복사 중 "이름 바꾸기"를하지 않으면 소스 파일을 대상 파일에 복사합니다. 소스와 타겟을 전달합니다. 원본을 대상에 복사합니다. 원본 파일의 이름을 바꾸고 createNewFile을 수행합니다. 나는 아직도 혼란이 어디에 있는지 분명하지 않다. –

답변

0

알아 냈어! 우! 내가 파일에있는 TargetPath 변환

때문에, 백업 및 는 이런 일이을 삭제 :

내가 srcpath가있는 TargetPath의 이름을했다 (파일이 삭제되지만 (srcpath,있는 TargetPath) Files.copy를 사용하는 경우 이 개 경로는 내 방식으로 전송하고, 내 방법은 백업 파일을 생성하고 원래 경로의 원본 파일 (하지의 경로를) 삭제 : 아무것도) 그것에 일어나지

그래서 기본적으로 있기 때문에 원래의 경로는 여전히 존재한다. (될 것이라고 C : \ 작업 \ testorigfile 예) 나는 Files.copy (srcpath,있는 TargetPath)를 사용하면 내가 원하는대로

따라서 정확히했다. 대답은 javadoc에서 (어떤 의미에서) 모든 팁 녀석들에게 감사했습니다!