拒绝访问 - 无法在某个目录中创建文件

Syn*_*ous 3 java file access-denied

当我尝试创建文件时C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,我收到以下错误:

java.io.FileNotFoundException: C:\ProgramData\Microsoft\Windows\Start Menu\Progr
ams\StartUp\test.bat (Access is denied)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(Unknown Source)
        at java.io.FileOutputStream.<init>(Unknown Source)
        at Program.testMethod(Program.java:26)
        at Program.main(Program.java:14)
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我会收到此错误以及如何解决它.

当我按照下面的建议在路径周围放置引号时,我收到以下错误:

java.io.FileNotFoundException: "C:\ProgramData\Microsoft\Windows\Start Menu\Prog
rams\StartUp\test.bat" (The filename, directory name, or volume label syntax is i
ncorrect)
        at java.io.FileOutputStream.open(Native Method)
        at java.io.FileOutputStream.<init>(Unknown Source)
        at java.io.FileOutputStream.<init>(Unknown Source)
        at Program.testMethod(Program.java:26)
        at Program.main(Program.java:14)
Run Code Online (Sandbox Code Playgroud)

第26行是:

BufferedWriter w = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("\"C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\test.bat\""), "utf-8"));
Run Code Online (Sandbox Code Playgroud)

Dhe*_*ora 6

这肯定是用户在C盘上的访问权限.程序数据是受限文件夹,只能由具有完全访问C驱动器的管理员访问.

这是windows中的限制区域,而不是java代码的问题.如果您检查,您将无法在此StartUp文件夹中创建任何新文件.

要检查您对C盘的访问权限:

  1. 转到路径:C:\ ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp.
  2. 右键单击,转到属性 - >安全选项卡 - >选择用户 - >单击编辑
  3. 分配适当的权限,您将能够在那里创建文件.