public String showDirectories() { String valores = "_root/"; try { // Con esto podemos cambiar la carpeta actual cliente.changeWorkingDirectory("/Musica/Megadeth"); cliente.makeDirectory("Killing Is My Business"); System.out.println("La ruta actual es: " + cliente.printWorkingDirectory()); // Con esto podemos obtener los directorios de la carpeta actual FTPFile[] directorios = cliente.listDirectories(); for (int i = 0; i < directorios.length; i++) { valores += directorios[i].getName() + "/"; } // Con esto podemos volver al directorio raíz cliente.changeToParentDirectory(); System.out.println("La ruta nueva es es: " + cliente.printWorkingDirectory()); } catch (IOException err) { valores = "El error es: " + err.getMessage(); } return valores; }
private void uploadDir(File directory) throws IOException { try { String[] children = directory.list(); if (children == null) { // Either dir does not exist or is not a directory } else { for (String filename : children) { File f = new File(directory, filename); if (f.isDirectory()) { ftpClient.mkd(f.getName()); ftpClient.changeWorkingDirectory(f.getName()); uploadDir(f); ftpClient.changeToParentDirectory(); } else { if (!uploaded.contains(filename)) { LOGGER.debug("uploading file: {}", filename); messageListener.addMessage(new Message("uploading file: " + filename)); ftpClient.setFileTransferMode(FTPClient.BINARY_FILE_TYPE); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.enterLocalPassiveMode(); InputStream is = new BufferedInputStream(new FileInputStream(directory + "/" + filename)); ftpClient.storeFile(filename, is); uploaded.add(filename); } } } } } catch (IOException e) { LOGGER.error("Upload failure"); throw new IOException(e); } }