2010-11-29 3 views
5

리눅스에서 Windows로 일부 코드를 이식하려고합니다. 나는 정말로 윈도우에 관해 많이 모른다. 그래서 나는 눈먼 날으는 종류 다. mergedSegFile 같이 문제의 코드는, org.apache.commons.io.FileUtilsWindows에서이 코드가 왜 죽어 가고 있습니까?

// If the mergesegs worked, delete the segment dirs 
    for (File file : segments.listFiles()) 
    { 
     if (!file.equals(mergedSegFile)) 
     { 
      LOG.debug("deleting segment dir " + file); 
      FileUtils.deleteDirectory(file); 
     } 
    } 

segments 파일은을 사용하여 일부 디렉토리를 삭제하려고 시도합니다. 그것은 IOException "Unable to delete file: c:\www\tomcat\crawls\test\TestingCode.site\crawldir\segments\20101128194700\parse_test\part-00000\data"으로 사망합니다.

이러한 파일은 동일한 프로그램의 이전 실행 (Nutch 크롤링을 수행함)으로 작성되었습니다. Cygwin에서 아래 ls -l을 수행하면 사용자 및 그룹이 올바르게 표시되지만 파마는 000

추가 정보를 원하시면 있습니다

  • dir

    나에게 권한에 대해 아무것도 말해주지 않습니다.
  • cmd.exe 창에서 del 또는 cygwin bash 창에서 rm -rf으로 디렉터리를 제거 할 수 있습니다.
  • 해당 파일과이 파일이있는 디렉터리는 동일한 프로그램 실행시 이전에 만들어졌습니다.
  • 컴퓨터가 Windows 7을 실행 중이므로 NTFS를 사용한다고 가정합니다.
+0

어쩌면 디렉토리를 삭제하려고하는 프로그램이 그 디렉토리 또는 파일을 사용합니까? 디렉토리를 삭제하는 코드를 추출하고 디렉토리를 명령 행 인수로 사용하여 삭제하는 작은 테스트 코드를 작성하십시오. 작동합니까? – khachik

+0

예외의 StackTrace에서 더 많은 정보를 얻을 수 있을까요? – keuleJ

답변

3

여기에는 여러 가지 가능성이 있습니다. 경로 자체가 나빠 보이지 않습니다. 가장 좋은 방법은 명령 프롬프트에서 수동으로 해당 디렉토리를 삭제하고 오류를 확인하는 것입니다.

확인 사항 :

  • 는 응용 프로그램에서 사용, 디렉토리, 아니면 그 내용의?
  • 디렉토리 또는 해당 파일 중 어느 것이 읽기 전용입니까? (dir이 아니라 ls으로 확인하십시오).
  • 디렉터리 또는 해당 파일 중 특별한 사용 권한이 있고 관리자가 아니십니까?
  • Btw, NTFS입니다. 맞습니까?
+0

- "del"로 파일을 제거 할 수 있습니다. –

+0

- dir이 모든 권한에 대해 아무 것도 말해주지 않습니다. NTFS라고 가정합니다. Windows 7입니다. –

+0

"데이터"는 파일입니까, 디렉토리입니까? 또한 특수 권한이 ​​있습니까? – EboMike

관련 문제