특정 디렉토리에 대한 파일 생성 권한을 확인해야합니다. (나는이 FS 권한 만 명시 적으로 구성해야합니다 일부 JVM 설정을 기본 어떨지를 판정 이해 한까지로)Java에서 파일 생성 권한을 확인하는 가장 좋은 방법은 무엇입니까
try {
AccessController.checkPermission(new FilePermission("directory_path", "write"));
// Have permission
} catch (SecurityException e) {
// Doesn't have permission
}
을 ... 그러나 이것은 항상, SecurityException를 슬로우합니다 :
은 내가 시도했습니다.
또 다른 가능한 방법은 같은 것을 사용하는 것이 었습니다 :
File f = new File("directory_path");
if(f.canWrite()) {
// Have permission
} else {
// Doesn't have permission
}
을 ...하지만 난 (지정된 디렉토리에 파일을 만들 수 없습니다 예를 들어 내가있는 파일을 만들 수 없습니다 경우에도이가 true를 돌려 "C : \" 관리자 권한이없는 사용자로 내 앱을 실행할 때 f.canWrite()가 true를 반환합니다.
File f = new File("directory_path");
try {
File.createTempFile("check", null, f).delete();
// Have permission
} catch (IOException e) {
// Doesn't have permission
}
을 ...하지만 클라이언트의 FS에 대한 거의 모든 폴더에 대해 이러한 권한을 얻을 필요가 있기 때문에이 임시 솔루션으로 만 역할을 할 수있다 :
은 결국 나는이에 대한 해킹과 유사한 완료했습니다.누구나 위에서 설명한 성능 문제와 해킹없이 REAL 파일 생성 권한을 멋지게 얻는 방법을 알고 있습니까?
설명하신 내용은 기본적으로 제 3 목록에있는 것과 같습니다. 필자는 PC에 존재하는 거의 모든 파일에 대한 파일 생성 권한을 수집해야한다고 말했기 때문에이 정보를 사용하여 분석하고 나중에 이러한 디렉토리 중 일부에서 파일을 생성합니다. 이것은 내가이 "비동기 활동"의 가능성을 가질 것이라는 것을 의미하며 나는 이것으로 괜찮습니다. 문제는 모든 폴더에서 파일을 만들거나 제거하는 것만으로도 권한이 좋은 것처럼 보이지 않는다는 것입니다. –