2013-03-15 6 views
0

File.delete()에 대한 비슷한 질문이 예상대로 작동하지 않지만 Java가 파일을 실제로 작성한 방법과 약간 다르지만 삭제하지는 않습니다. 그것이 끝나면.Java가 자체적으로 생성 한 파일을 삭제하지 않음

File genFile = new File(parsed); 
... sends file data across socket ... 
genFile.delete(); 

생성 된 파일 (genFile) 이전 프로그램의 생성 및 기록, 내가 그것을 삭제하려고하면 그러나, 파일이 단지 디렉토리에 남아 있었다 - 오류 메시지 등 모든 아이디어 무슨 일이 수에 관해서 일어날거야?

+6

출력 스트림을 파일에 기록한 후 제대로 닫았습니까? 또는 그것을 읽은 후 입력 스트림? – radai

+0

genFile = null로 설정하십시오. 개체가 가비지 수집되지 않으면 파일이 종종 삭제되지 않습니다. –

+0

자바에서 파일을 생성하는 코드를 공유하십시오. –

답변

0

+0

이 작품 - 감사합니다 :). InputStreamReader를 닫아야한다. –

1

File.delete() 오류에 대해 침묵하기 때문에 좋지 않습니다.

java.nio.file.Files.delete(file.toPath()); // throws IOException 

는 당신에게 파일을 삭제할 수없는 이유를 표시 할 수 있습니다보십시오. (또는) 당신이 (닫아야합니다

0

genFile.close(); 

전에

genFile.delete(); 

스트림을 추가) (삭제 시도하기 전에 파일 연결을 :)하지 않을 수없는 것 파일을 삭제하려고 할 때 플래시되었으므로 먼저 스트림을 닫고 파일을 삭제하십시오.

0

Windows 또는 * Unix에서 실행중인 경우 해당 정보가 적절합니다.

Windows는 모든 응용 프로그램에서 열려있는 파일을 제거하지 않습니다. 제거하기 전에 파일을 닫으십시오.

유닉스 변종 해야하고 파일을 제거하십시오 (inode를 릴리스하십시오).