Vista和超级隐藏文件上的Java File.canWrite()
我有一些代码可以有效地做到这一点:Vista和超级隐藏文件上的Java File.canWrite(),java,file,windows-vista,hidden,Java,File,Windows Vista,Hidden,我有一些代码可以有效地做到这一点: File file = new File("C:\\Program Files (x86)\\Something\\fred.txt"); System.out.println("file.canWrite() = " + file.canWrite()); 这是真的。 奇怪的是,我可以毫无例外地创建文件。此外,另一个程序可以读取我创建的文件。问题是,在Windows资源管理器中,文件根本不显示 显示隐藏文件你可能会想,但不,我已经打开了这个选项 我还发现了
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 update 6下运行的。您很可能是文件夹重定向的“受害者”。启用UAC后,当您不是以管理员身份运行程序时,对程序文件的任何写入都会重定向到其他位置
您应该在C:\Users\\AppData\Local\VirtualStore\\\中找到您的文件
当然,正确的解决办法是首先不要写入程序文件。相反,请使用用户主目录中的某个位置(您应该写入的确切位置取决于应用程序的用途)。您很可能是文件夹重定向的“受害者”。启用UAC后,当您不是以管理员身份运行程序时,对程序文件的任何写入都会重定向到其他位置
您应该在C:\Users\\AppData\Local\VirtualStore\\\中找到您的文件
当然,正确的解决办法是首先不要写入程序文件。相反,请使用用户主目录中的某个位置(您应该写入的确切位置取决于应用程序的用途)。我相信更新10可能已经改变了这种行为。我知道,为了更好地使用vista,微软重新实现了很多浏览器功能。虽然我不是100%确定,但我建议你看看。我相信更新10可能已经改变了这种行为。我知道,为了更好地使用vista,微软重新实现了很多浏览器功能。虽然我不是100%肯定,但我建议你看看