3

我的代码写入文件,写入文件时出现拒绝访问错误。

Files.write(path, myString.getBytes());

例外是休耕

FAILED to write to file.
java.nio.file.AccessDeniedException: 
    at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)
    at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
    at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)
    at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:229)
    at java.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:430)
    at java.nio.file.Files.newOutputStream(Files.java:170)
    at java.nio.file.Files.write(Files.java:3058)
4

1 回答 1

1

抱歉,这不是一个完整的答案,但它不适合对该问题的评论。我希望它有所帮助。

来自https://superuser.com/questions/342276/cannot-save-in-hard-disk-drive-c

从 Windows XP 开始,没有管理员权限就无法写入系统分区的根目录。但是,出于安全原因,Windows Vista 和 Windows 7 默认情况下即使以管理员身份登录也不会授予管理员权限,除非明确提升到此权限级别,这可能需要您单击UAC 提示符

由于您没有尝试写入 的根目录C:\,因此我认为这不是权限问题,因此可能另一个应用程序已锁定该文件。您是否.txt在另一个应用程序(例如记事本)中打开了该文件?

检查打开文件句柄的一种方法是使用Process Explorer。您可以使用Ctrl+F并搜索文件的完整路径或名称,Process Explorer 将列出所有具有该文件的打开句柄的进程。Ctrl您可以使用+查看任何应用程序的所有句柄H,甚至可以从此处关闭句柄。注意:如果您在关闭句柄时获得拒绝访问权限,请选择文件 → 显示所有进程的详细信息,然后重试。

于 2012-11-15T09:11:26.630 回答