Ошибка при попытке скопировать файл из одной папки во временную папку в JAVA [Доступ запрещен]? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь скопировать кучу файлов из одной папки во временную папку, используя java, но это дает мне сообщение «Файл не найден» (доступ запрещен)

Фрагмент кода:

`// определение пути

     Path userDir = Paths.get("somePathString");
     Path tempDir = Files.createTempDirectory(userDir, tempFolder);

    // creating file

    File userDirFile = new File(userDir.toString());
    File tempDirFile = new File((tempDir).toString());


    FileCopyUtils.copy(userDirFile, tempDirFile);

    tempDirFile.deleteOnExit();`    

Вывод

`    java.io.FileNotFoundException: C:\gitProjects\server\bin\newfolder (Access is denied)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(Unknown Source)
        at java.io.FileInputStream.<init>(Unknown Source)
        at org.springframework.util.FileCopyUtils.copy(FileCopyUtils.java:63)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

`

1 Ответ

0 голосов
/ 04 апреля 2019

У меня была эта проблема с Netbeans. С пакетом Netbeans вы не хотите помещать свои файлы непосредственно в папку src. Вместо этого вы хотите их просто внутри папки пакета.

Также это выглядит как ваш (доступ запрещен). Каждому файлу дается разрешение, что означает, что только определенные пользователи могут получить доступ к этому файлу. Вот направление Windows для изменения прав доступа к файлам.

Вам необходимо установить разрешение для пользовательских элементов управления.

Перейти к C: \ Program Files \ Щелкните правой кнопкой мыши папку Java, выберите Свойства. Выберите вкладку безопасности. Там нажмите кнопку «Редактировать», после чего появится окно РАЗРЕШЕНИЯ НА JAVA. Нажмите «Добавить», после чего появится новое окно. При этом в поле «Введите имя объекта» введите имя своей учетной записи и нажмите «ОК» (если он уже существует, пропустите этот шаг). Теперь в окне «РАЗРЕШЕНИЕ НА JAVA» вы увидите несколько интерактивных опций, таких как CREATOR OWNER, SYSTEM, среди которых ваше имя пользователя. Нажмите на него и отметьте опцию ПОЛНЫЙ КОНТРОЛЬ в Разрешениях для подокна. Наконец, нажмите Применить и все в порядке.

...