Подскажите пожалуйста причину AccessDeniedException

Здраствуйте! Пытаюсь воспользоваться методом Files.readAllLines, но получаю исключение AccessDeniedException

public class Test {
    public static void main(String[] args) throws IOException {

        Path directory = Paths.get("D:\\it\\A");

        boolean isDirectory = Files.isDirectory(directory);
        boolean isWritable = Files.isWritable(directory);
        System.out.println(isDirectory);
        System.out.println(isWritable);
        List<String>list = new ArrayList<>();
        list=Files.readAllLines(directory);

    }
}

Консоль:

true
true
Exception in thread "main" java.nio.file.AccessDeniedException: D:\it\A
    at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:89)
    at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
    at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
    at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:236)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
    at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:422)
    at java.base/java.nio.file.Files.newInputStream(Files.java:160)
    at java.base/java.nio.file.Files.newBufferedReader(Files.java:2923)
    at java.base/java.nio.file.Files.readAllLines(Files.java:3413)
    at java.base/java.nio.file.Files.readAllLines(Files.java:3454)
    at Test.main(Test.java:20)

Process finished with exit code 1

Пробовал на разных локальных дисках создавать папку, папка действительно существует по этому адресу, режим "Только для чтения" выключен как для данной папки, так и для всех вложенных. Антивирус отключен, другое приложение папку не использует. Интернет перерыл, но ответ так и не нашел. ОС Windows 10 PRO, среда разработки:

IntelliJ IDEA 2022.1 (Community Edition) Build #IC-221.5080.210, built on April 12, 2022 Runtime version: 11.0.14.1+1-b2043.25 amd64

Понимаю, что наверняка ошибка какая-то глупая, но ответ найти не могу. Заранее благодарен за помощь!

InputStream:

public class Test {
    public static void main(String[] args) throws IOException {
        String path = "D:\\it\\A\\A2\\TEXT1.txt";

        InputStream is = new FileInputStream(path);
        int a=0;
        while ((a=is.read())!=-1) {
           System.out.println((char)a);
        }
        is.close();
 }
}

Также работает Files.readAllBytes:

 public class Test {
        public static void main(String[] args) throws IOException {
            String path = "D:\\it\\A\\A2\\TEXT1.txt";
    
            String content = new String(Files.readAllBytes(Paths.get(path)));
            System.out.println(content);
     }

}

UPD. проверил через cmd данная папка установлены разрешения на чтение и запись.


Ответы (1 шт):

Автор решения: Frehzy

Взято с https://stackoverflow.com/questions/1844688/how-to-read-all-files-in-a-folder-from-java

public void listFilesForFolder(final File folder) {
    for (final File fileEntry : folder.listFiles()) {
        if (fileEntry.isDirectory()) {
            listFilesForFolder(fileEntry);
        } else {
            System.out.println(fileEntry.getName());
        }
    }
}

final File folder = new File("/home/you/Desktop");
listFilesForFolder(folder);

или (Java 8+)

try (Stream<Path> paths = Files.walk(Paths.get("/home/you/Desktop"))) {
    paths
        .filter(Files::isRegularFile)
        .forEach(System.out::println);
} 
→ Ссылка