private Directory createDirectory(final FileSet set) { final DirectoryScanner scanner = set.getDirectoryScanner(getProject()); final String[] files = scanner.getIncludedFiles(); if (files.length == 0) { // skip return null; } Directory root = new Directory(scanner.getBasedir()); Stream.of(files).map(Directory::getPath).forEach(path -> { Directory current = root; File currentParent = scanner.getBasedir(); for (String element : path) { final File file = new File(currentParent, element); if (file.isDirectory()) { current.addDirectory(new Directory(file)); current = current.getChild(file); currentParent = current.getDirectory(); } else if (file.isFile()) { current.addFile(file); } } }); return root; }
private void download(final String fromSshUri, final String toPath) throws JSchException, IOException { final String file = parseUri(fromSshUri); Session session = null; try { session = openSession(); ScpFromMessage message = null; if (!isSftp) { message = new ScpFromMessage(getVerbose(), session, file, getProject().resolveFile(toPath), fromSshUri.endsWith("*"), preserveLastModified, compressed); } else { message = new ScpFromMessageBySftp(getVerbose(), session, file, getProject().resolveFile(toPath), fromSshUri.endsWith("*"), preserveLastModified); } log("Receiving file: " + file); message.setLogListener(this); message.execute(); } finally { if (session != null) { session.disconnect(); } } }
message = new ScpToMessage(getVerbose(), compressed, session, getProject().resolveFile(fromPath), file, preserveLastModified); } else { message = new ScpToMessageBySftp(getVerbose(), session, getProject().resolveFile(fromPath), file, preserveLastModified);