在Windows 7上创建文件会导致“拒绝访问”exception

我有一个Java应用程序,用户可以使用以下代码创建文本文件并将其保存在计算机上的任何位置:

File txtFile = new File( path ); Writer writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( txtFile ), "UTF-8" ) ); // Error occurs here. 

但许多使用Windows 7的用户报告说,将文件保存到“C:\”时 ,会出现“ 访问被拒绝 ”错误。 我发现这是因为他们需要管理员权限才能将文件保存在Win7中的此类路径中。

而不是向用户显示警告消息:“ 您无法将文件保存在此路径中 ”,我可以以某种方式将文件保存在此路径中,例如,如果有通过Java代码在Win7中具有管理员权限的方法,或者这样的事情?

简短的回答 – 没有。

如果需要保存到C盘,则需要权限。 如果此程序只需要创建文件,则可以使用用户临时文件夹。 请参见System.getProperty()

Windows Vista和Windows 7启用了UAC。 UAC拒绝在某些位置创建新文件,但没有管理权限。

检查您的权限并确保在ADMINISTRATIVE帐户中执行java可执行文件,或禁用UAC。

为此,请转到“开始”键入“CMD.EXE” – >右键单击cmd.exe文件并以管理员身份运行。 然后导航到包含.class文件的位置。 然后输入java ClassFile并按Enter键

你使用cmd,即Dos运行你的文件或日食? 无论您使用什么它看起来像您作为默认用户运行。 在Windows 7中,默认情况下UAC会写入system.directory。

做以下,希望它应该工作1

 > If cmd.exe > Then when you open run from start menu. Right click it, select run as administrator and then run your application > > If eclipse/any other IDE > > Close existing, right clicl eclipse,select run as admim and then run your application > > Hope this helps