2008-11-11 3 views
1

I 효과적으로이 작업을 수행하는 코드가 있습니다자바 Vista에서 File.canWrite() 슈퍼 숨김 파일

File file = new File("C:\\Program Files (x86)\\Something\\fred.txt"); 
System.out.println("file.canWrite() = " + file.canWrite()); 

그건 사실이 인쇄합니다. 이상한 점은 예외없이 파일을 만들 수 있다는 것입니다. 또한 다른 프로그램에서 내가 만든 파일을 읽을 수 있습니다. 문제는 Windows 탐색기에서 파일이 전혀 표시되지 않는다는 것입니다.

생각한 숨김 파일을 표시하지만 아니요, 해당 옵션이 켜져 있습니다.

나는 Vista의 '슈퍼 숨김 파일'에 대해서도 알아 냈으므로이 옵션을 켜기 만하면 파일을 볼 수 없습니다! 어쩌면 난 내 레지스트리를 올바르게 편집하지 못했습니다 - 나는 그 파일이 슈퍼 숨겨진 것으로 추측 할 수 있습니다 - 다른 곳은있을 수 있습니까?

이제 문제는 내가 HTML 파일을 만들고 있는데 브라우저를 시작하면 숨겨진 슈퍼이기 때문에 HTML 파일을 볼 수 없다는 것입니다.

Java가 슈퍼 숨김 파일을 만들지 않도록하려면 어떻게해야합니까? JRE 6 업데이트 6에서 실행 중입니다.

답변

9

대부분의 경우 폴더 리디렉션의 "피해자"입니다. UAC가 활성화되면 Program Files에 대한 쓰기는 관리자 권한으로 프로그램을 실행하지 않을 때 다른 곳으로 리디렉션됩니다.

당신은 C에서 파일을 찾을 수 있어야합니다의 AppData \ 로컬 \ < 이름 > \ \ 사용자 \ VirtualStore <\> < \ 경로 > < \ 예상 > < \ 여기 >를 삽입합니다.

물론 올바른 수정 프로그램은 처음에는 Program Files에 쓰지 않는 것입니다. 대신 사용자의 홈 디렉토리 (앱의 목적에 따라 작성해야하는 정확한 위치)의 어딘가에서 사용하십시오.

0

업데이트 10이이 동작을 변경했을 수도 있습니다. 나는 비스타로 잘 작동하기 위해 많은 브라우저 물건을 다시 구현했다는 것을 안다. 나는 100 % 확신 할 수는 없지만 당신이 한 번해볼 것을 제안합니다.