Как скачать файл в определенную папку в Java? - PullRequest
0 голосов
/ 25 сентября 2019

Я работаю над приложением, которое загружает сторонние зависимости в определенную папку, а затем выполняет проверку зависимостей для нее.Загружаемые файлы могут быть любого типа, они могут быть в виде zip, jar или могут быть в папке.Я пытаюсь найти пример кода, но мне кажется, что ничего не работает.Я попробовал NIO в Java, но это, кажется, работает только для записи в определенный файл, а не в папку.Ниже приведен код, где я использовал NIO


        // Checking If The File Exists At The Specified Location Or Not
        Path filePathObj = Paths.get(filePath);
        boolean fileExists = Files.exists(filePathObj);
        if(fileExists) {
            try {
                urlObj = new URL(sampleUrl);
                rbcObj = Channels.newChannel(urlObj.openStream());
                fOutStream = new FileOutputStream(filePath);

                fOutStream.getChannel().transferFrom(rbcObj, 0, Long.MAX_VALUE);
                System.out.println("! File Successfully Downloaded From The Url !");
            } catch (IOException ioExObj) {
                System.out.println("Problem Occured While Downloading The File= " + ioExObj.getMessage());
            } finally {
                try {
                    if(fOutStream != null){
                        fOutStream.close();
                    }
                    if(rbcObj != null) {
                        rbcObj.close();
                    }
                } catch (IOException ioExObj) {
                    System.out.println("Problem Occured While Closing The Object= " + ioExObj.getMessage());
                }
            }
        } else {
            System.out.println("File Not Present! Please Check!");
        }```

1 Ответ

0 голосов
/ 26 сентября 2019
public Class CopyAndWrite {

    public static final String SOURCES = "C:\\Users\\Administrator\\Desktop\\resources";
    public static final String TARGET = "C:\\Users\\Administrator\\Desktop\\111";

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

        Path startingDir = Paths.get(SOURCES);

        Files.walkFileTree(startingDir, new FindJavaVisitor());
    }

    private static class FindJavaVisitor extends SimpleFileVisitor<Path> {

        @Override
        public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
            if (!StringUtils.equals(dir.toString(), SOURCES)) {
                Path targetPath = Paths.get(TARGET + dir.toString().substring(SOURCES.length()));
                if (!Files.exists(targetPath)) {
                    Files.createDirectory(targetPath);
                }
            }
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
            Path targetPath = Paths.get(TARGET + file.toString().substring(SOURCES.length()));
            copyFile(targetPath, Files.readAllBytes(file));

            return FileVisitResult.CONTINUE;
        }
    }

    private static void copyFile (Path path,byte[] bytes){
        // write file
        try {
            Files.write(path, bytes);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...