我有一些代码可以有效地做到这一点:
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下运行的.
您很可能是文件夹重定向的"受害者".启用UAC后,如果您不以管理员身份运行程序,则对Program Files的任何写入都将重定向到其他位置.
您应该在C:\ Users\<用户名>\AppData\Local\VirtualStore\<插入>\<期望>\<路径>\<此处>中找到您的文件.
当然,正确的解决方法是首先不要写入Program Files.相反,使用用户主目录中的某个位置(您应该写入的确切位置取决于应用程序的用途).