当前位置: 首页 > 面试题库 >

尝试写入文件夹时获取“ java.nio.file.AccessDeniedException”

相诚
2023-03-14
问题内容

由于某种原因,java.nio.file.AccessDeniedException每次尝试使用Tomcat上的java
webapp写入计算机上的文件夹时,我都会不断获取信息。此文件夹的权限设置为对我的计算机(Windows)上的每个人都完全控制。有人知道我为什么会得到这个例外吗?

这是我的代码:

public void saveDocument(String name, String siteID, byte doc[]) {
    try {
        Path path = Paths.get(rootDirectory + siteID);
        if (Files.exists(path)) {
            System.out.println("Exists: " + path.toString());
            Files.write(path, doc);
        } else {
            System.out.println("DOesn't exist");
            throw new Exception("Directory for Site with ID " + siteID + "doesn't exist");
        }
    } catch (FileSystemException e) {
        System.out.println("Exception: " + e);
        e.printStackTrace();
    } catch (IOException e ) {
        System.out.println("Exception: " + e);
        e.printStackTrace();
    } catch (Exception e) {
        System.out.println("Exception: " + e);
        e.printStackTrace();
    }

这是错误:

异常:java.nio.file.AccessDeniedException:C:\ safesite_documents \ site1
java.nio.file.AccessDeniedException:C:\ safesite_documents \ site1 at
sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83)。
Java上的sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102)上的nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)在Java上的sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:230)
.nio.file.spi.FileSystemProvider.newOutputStream(FileSystemProvider.java:430)在java.nio.file.Files.newOutputStream(Files.java:172)在java.nio.file.Files.write(Files.java:3092)

可能的原因:请参阅我在supersuser上的帖子,了解我如何无法取消对Windows
7上的任何文件夹的“只读”检查。


问题答案:

好的,事实证明我在做一些愚蠢的事情。我没有将新文件名附加到路径中。

我有

rootDirectory = "C:\\safesite_documents"

但这应该是

rootDirectory = "C:\\safesite_documents\\newFile.jpg"

抱歉,一如既往,这是一个愚蠢的错误。



 类似资料:
  • 问题内容: 我必须阅读tomcat日志文件,并在一段时间(例如:一个小时)后再次读取该文件(仅针对新添加的内容),因此我创建了RandomAccessFile来记录我完成的最后一个位置并使用BufferedReader.readLine()方法。 但是,我发现有时我无法读取文件的整行。 例如,tomcat正在尝试编写以下内容(仅作为示例): 192.168.0.0本地主机/index.html .

  • 我正在MySQL中存储文本文件,并将其从Java读入项目文件。我在这方面面临一个问题。我正在保存3个文件,每个文件包含992行。但当我读取并将其保存回java项目文件夹时,两个文件被写成每行993行,最后一行是空字符串。 对此如何化解? 这里是我的代码读取和写入项目文件夹。 我正在附上可以访问这些文件的链接。文件1文件2文件3 这是密码

  • 问题内容: 我正在使用以下代码从服务器下载文件,然后将其写入sd卡的根目录,一切正常: 但是,;表示文件将始终写入root /mnt/sdcard。是否可以指定某个文件夹来写入文件? 例如: 问题答案:

  • 我正在尝试使用文件提供商共享存储在我的应用程序内部存储器的原始文件夹中的MP3文件,并允许用户使用他们选择的音频收听应用程序打开共享的MP3文件。 然而,在我编写的代码中,当我尝试使用附加的内容URI作为数据执行意图时,会出现FileNotFoundException。这会导致FileProvider系统的所有其他方面出现故障。 我创建了一个MediaPlayer,让它毫无问题地打开了我想要共享的

  • 我需要从file对象中的resources文件夹中获取这个文件,而不是在InputsReam中。我使用下面的代码,工作文件在eclipse上,但FoleNotFoundException在服务器上。)使用AWS EC2) 我添加了对用户服务POM的公共jar依赖。 请帮助我从一个公共项目的资源获取文件。

  • 当我试图打开一个特定的文件夹时,我有一个问题,我有这个代码来打开我的文件夹。 该代码只打开最近的文件夹,在那里我可以在我的图库中看到我的所有照片,而不打开特定的文件夹 我正在用API 26进行测试