2012-05-24 6 views
3

현재 파일 이름을 기반으로 디렉토리를 만든 다음 파일을 새 디렉토리로 이동합니다. 내가 만들 때읽기/쓰기 권한이있는 새 폴더 만들기

다음
String filename = filesInFolder.get(i).toString(); 
File fullPathFile = new File(filename.replaceAll("(\\w+)_(\\d+).*", "$1/$2/$0")); 
fullPathFile.getParentFile().mkdirs(); 

내가 새로운 디렉토리에 파일을 이동 InputStreamOutputStream를 사용하는 것을 시도하고, 코드가 괜찮아 보인다 그러나 다음 순간 나는 다음 코드를 사용하여 새 디렉토리의 벌금을 만드는 오전 새로운 디렉토리, 모든 폴더는 read-only로 설정되어 있으므로 파일을 알고있는 디렉토리로 이동할 수 없습니다.

폴더를 만들 때 폴더를 read-write으로 설정하는 방법이 있습니까?

+0

읽기 전용 디렉토리입니까? 어떤 운영 체제입니까? – maksimov

+1

관련 : http://stackoverflow.com/questions/564154/create-directory-with-write-permissions-for-the-group – assylias

+0

예, 나는 폴더의 새 디렉토리를 만들고 새 디렉토리의 모든 폴더에 읽기 전용 액세스. 나는 이것을 할려고 할 때 xp –

답변

3

나는 mkdirs()를 호출하기 전에 fullPathFile.getParentFile().setWritable(true)을 믿습니다. 메소드 setWritable (bool)은이 추상 경로 이름에 대한 소유자의 쓰기 권한을 설정하는 편리한 메소드입니다.
파일이므로 적용 할 수 있습니다.

+0

을 사용하고있다. '부울을 dereferenced 할 수 없다'라는 메시지가 나타나면 getParentFile() 후에 setWritable (true)를 추가 할 수 있지만 나중에 .mkdirs()를 추가하지 않아도된다. 어떤 아이디어? –

+0

문제를 살펴 보겠습니다.하지만 시도해 보았습니다. 자세한 내용은 API를 참조하십시오. mkdirs() 메소드가 더 이상 존재하지 않는다는 것을 의미합니까? 내가 말하는 것을 얻으면, 당신은'fullPathFile.getParentFile(). setWritable (true) .mkdirs'라고 쓰고 있습니까? setWritable (bool)는, 액세스권의 변경이 실패했는지, 성공했는지를 나타내는 boolean를 돌려주기 때문에, 정상적으로 종료했을 경우는 그 통상의 것입니다. –

관련 문제