2012-07-31 5 views
2

응용 프로그램에 파일 시스템의 특정 디렉토리를 읽거나 쓸 수있는 권한이 있는지 어떻게 확인합니까? 나는이 노력하고 있어요 :AccessController checkPermission은 항상 예외를 throw합니다.

try { 
    AccessController.checkPermission(new FilePermission(files[i] 
      .getAbsolutePath(), "read,write")); 
} 
catch (Exception e) { 
    System.out.println(e.toString()); 
} 

를하지만 항상 예외 출력 던졌습니다 : 여기 누락 뭔가

java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Dell" "read") 
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Documents and Settings" "read") 
java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\glut-3.7.6" "read") 

거기를?

답변

1

권한이없는 경우 AccessController은 항상 예외를 throw합니다. SecurityException을 붙잡아서 처리 할 수 ​​있습니다.

java.io.File.canRead(), java.io.File.canWrite() 방법으로 읽기/쓰기 권한을 확인하는 더 나은 솔루션입니다.

+0

나는 java.io.File.canRead()를 시도했지만 모든 디렉토리에 대해 true를 반환합니다. – Jackson

+0

실제로, 나는 디렉토리 내의 파일에 대해 canRead를 체크하면 이것이 효과가있을 것이라고 생각한다. – Jackson

관련 문제