2008-11-11 5 views
1

У меня есть некоторый код, который эффективно делает это:Java File.canWrite() на Vista, и супер скрытые файлы

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: \ Users \ имя пользователя < > \ AppData \ Local \ VirtualStore \ < вставки > \ < ожидается > \ < путь > \ < здесь >.

Правильное исправление, конечно же, заключается в том, чтобы не записывать файлы программы в первую очередь. Вместо этого используйте где-нибудь в домашнем каталоге пользователя (точное местоположение, которое вы должны записать, зависит от цели приложения).

0

Я считаю, что обновление 10 могло изменить это поведение. Я знаю, что переделал много материалов браузера, чтобы лучше работать с Vista. Я не на 100% уверен, хотя, но я предлагаю вам взглянуть.