List of usage examples for org.apache.commons.net.ftp FTPClient listFiles
public FTPFile[] listFiles(String pathname) throws IOException
From source file:org.waarp.ftp.client.FTPClientExample.java
public static final void main(String[] args) { boolean storeFile = false, binaryTransfer = false, error = false, listFiles = false, listNames = false, hidden = false;/* w ww. j a v a 2 s . c o m*/ boolean localActive = false, useEpsvWithIPv4 = false, feat = false, printHash = false; boolean mlst = false, mlsd = false; boolean lenient = false; long keepAliveTimeout = -1; int controlKeepAliveReplyTimeout = -1; int minParams = 5; // listings require 3 params String protocol = null; // SSL protocol String doCommand = null; String trustmgr = null; String proxyHost = null; int proxyPort = 80; String proxyUser = null; String proxyPassword = null; int base = 0; for (base = 0; base < args.length; base++) { if (args[base].equals("-s")) { storeFile = true; } else if (args[base].equals("-a")) { localActive = true; } else if (args[base].equals("-b")) { binaryTransfer = true; } else if (args[base].equals("-c")) { doCommand = args[++base]; minParams = 3; } else if (args[base].equals("-d")) { mlsd = true; minParams = 3; } else if (args[base].equals("-e")) { useEpsvWithIPv4 = true; } else if (args[base].equals("-f")) { feat = true; minParams = 3; } else if (args[base].equals("-h")) { hidden = true; } else if (args[base].equals("-k")) { keepAliveTimeout = Long.parseLong(args[++base]); } else if (args[base].equals("-l")) { listFiles = true; minParams = 3; } else if (args[base].equals("-L")) { lenient = true; } else if (args[base].equals("-n")) { listNames = true; minParams = 3; } else if (args[base].equals("-p")) { protocol = args[++base]; } else if (args[base].equals("-t")) { mlst = true; minParams = 3; } else if (args[base].equals("-w")) { controlKeepAliveReplyTimeout = Integer.parseInt(args[++base]); } else if (args[base].equals("-T")) { trustmgr = args[++base]; } else if (args[base].equals("-PrH")) { proxyHost = args[++base]; String parts[] = proxyHost.split(":"); if (parts.length == 2) { proxyHost = parts[0]; proxyPort = Integer.parseInt(parts[1]); } } else if (args[base].equals("-PrU")) { proxyUser = args[++base]; } else if (args[base].equals("-PrP")) { proxyPassword = args[++base]; } else if (args[base].equals("-#")) { printHash = true; } else { break; } } int remain = args.length - base; if (remain < minParams) // server, user, pass, remote, local [protocol] { System.err.println(USAGE); System.exit(1); } String server = args[base++]; int port = 0; String parts[] = server.split(":"); if (parts.length == 2) { server = parts[0]; port = Integer.parseInt(parts[1]); } String username = args[base++]; String password = args[base++]; String account = args[base++]; String remote = null; if (args.length - base > 0) { remote = args[base++]; } String local = null; if (args.length - base > 0) { local = args[base++]; } boolean mustCallProtP = false; final FTPClient ftp; if (protocol == null) { if (proxyHost != null) { System.out.println("Using HTTP proxy server: " + proxyHost); ftp = new FTPHTTPClient(proxyHost, proxyPort, proxyUser, proxyPassword); } else { ftp = new FTPClient(); } } else { FTPSClient ftps; if (protocol.equals("true")) { System.out.println("Implicit FTPS"); ftps = new FTPSClient(true); } else if (protocol.equals("false")) { System.out.println("Explicit FTPS"); ftps = new FTPSClient(false); mustCallProtP = true; } else { String prot[] = protocol.split(","); System.out.println("Protocl FTPS: " + protocol); if (prot.length == 1) { // Just protocol ftps = new FTPSClient(protocol); } else { // protocol,true|false mustCallProtP = !Boolean.parseBoolean(prot[1]); ftps = new FTPSClient(prot[0], !mustCallProtP); } } ftp = ftps; if ("all".equals(trustmgr)) { System.out.println("Accept all"); ftps.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager()); } else if ("valid".equals(trustmgr)) { System.out.println("Accept after valid"); ftps.setTrustManager(TrustManagerUtils.getValidateServerCertificateTrustManager()); } else if ("none".equals(trustmgr)) { System.out.println("Accept none"); ftps.setTrustManager(null); } } if (printHash) { ftp.setCopyStreamListener(createListener()); } if (keepAliveTimeout >= 0) { ftp.setControlKeepAliveTimeout(keepAliveTimeout); } if (controlKeepAliveReplyTimeout >= 0) { ftp.setControlKeepAliveReplyTimeout(controlKeepAliveReplyTimeout); } ftp.setListHiddenFiles(hidden); // suppress login details ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true)); try { int reply; if (port > 0) { ftp.connect(server, port); } else { ftp.connect(server); } System.out.println("Connected to " + server + " on " + (port > 0 ? port : ftp.getDefaultPort())); // After connection attempt, you should check the reply code to verify // success. reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); System.err.println("FTP server refused connection."); System.exit(1); } } catch (IOException e) { if (ftp.getDataConnectionMode() == FTPClient.ACTIVE_LOCAL_DATA_CONNECTION_MODE) { try { ftp.disconnect(); } catch (IOException f) { // do nothing } } System.err.println("Could not connect to server."); e.printStackTrace(); System.exit(1); } __main: try { if (account == null) { if (!ftp.login(username, password)) { ftp.logout(); error = true; break __main; } } else { if (!ftp.login(username, password, account)) { ftp.logout(); error = true; break __main; } } System.out.println("Remote system is " + ftp.getSystemType()); if (binaryTransfer) { ftp.setFileType(FTP.BINARY_FILE_TYPE); } // Use passive mode as default because most of us are // behind firewalls these days. if (localActive) { ftp.enterLocalActiveMode(); } else { ftp.enterLocalPassiveMode(); } ftp.setUseEPSVwithIPv4(useEpsvWithIPv4); if (mustCallProtP) { ((FTPSClient) ftp).execPBSZ(0); ((FTPSClient) ftp).execPROT("P"); } if (storeFile) { InputStream input; input = new FileInputStream(local); ftp.storeFile(remote, input); input.close(); } else if (listFiles) { if (lenient) { FTPClientConfig config = new FTPClientConfig(); config.setLenientFutureDates(true); ftp.configure(config); } for (FTPFile f : ftp.listFiles(remote)) { System.out.println(f.getRawListing()); System.out.println(f.toFormattedString()); } } else if (mlsd) { for (FTPFile f : ftp.mlistDir(remote)) { System.out.println(f.getRawListing()); System.out.println(f.toFormattedString()); } } else if (mlst) { FTPFile f = ftp.mlistFile(remote); if (f != null) { System.out.println(f.toFormattedString()); } } else if (listNames) { for (String s : ftp.listNames(remote)) { System.out.println(s); } } else if (feat) { // boolean feature check if (remote != null) { // See if the command is present if (ftp.hasFeature(remote)) { System.out.println("Has feature: " + remote); } else { if (FTPReply.isPositiveCompletion(ftp.getReplyCode())) { System.out.println("FEAT " + remote + " was not detected"); } else { System.out.println("Command failed: " + ftp.getReplyString()); } } // Strings feature check String[] features = ftp.featureValues(remote); if (features != null) { for (String f : features) { System.out.println("FEAT " + remote + "=" + f + "."); } } else { if (FTPReply.isPositiveCompletion(ftp.getReplyCode())) { System.out.println("FEAT " + remote + " is not present"); } else { System.out.println("Command failed: " + ftp.getReplyString()); } } } else { if (ftp.features()) { // Command listener has already printed the output } else { System.out.println("Failed: " + ftp.getReplyString()); } } } else if (doCommand != null) { if (ftp.doCommand(doCommand, remote)) { // Command listener has already printed the output // for(String s : ftp.getReplyStrings()) { // System.out.println(s); // } } else { System.out.println("Failed: " + ftp.getReplyString()); } } else { OutputStream output; output = new FileOutputStream(local); ftp.retrieveFile(remote, output); output.close(); } ftp.noop(); // check that control connection is working OK ftp.logout(); } catch (FTPConnectionClosedException e) { error = true; System.err.println("Server closed connection."); e.printStackTrace(); } catch (IOException e) { error = true; e.printStackTrace(); } finally { if (ftp.getDataConnectionMode() == FTPClient.ACTIVE_LOCAL_DATA_CONNECTION_MODE) { try { ftp.disconnect(); } catch (IOException f) { // do nothing } } } System.exit(error ? 1 : 0); }
From source file:patcher.FXMLDocumentController.java
private ArrayList<String> getMissing(FTPClient ftp, File[] filesList) throws IOException { ArrayList<String> missing = new ArrayList<>(); FTPFile[] files = ftp.listFiles(folder); for (FTPFile file : files) { boolean found = false; for (File test : filesList) { if (test.getName().equals(file.getName())) { found = true;// w ww . j ava 2 s .c o m } } if (found == false) { if (file.isFile()) { missing.add(file.getName()); } } } return missing; }
From source file:ro.kuberam.libs.java.ftclient.FTP.FTP.java
private static List<Object> _checkResourcePath(FTPClient connection, String remoteResourcePath, String actionName, boolean isDirectory) throws Exception { FTPFile[] resources = null;/*ww w. j a v a2 s . com*/ List<Object> connectionObject = new LinkedList<Object>(); boolean remoteDirectoryExists = connection.changeWorkingDirectory(remoteResourcePath); if (isDirectory) { int returnCode = connection.getReplyCode(); // check if the remote directory exists if (returnCode == 550) { throw new Exception(ErrorMessages.err_FTC003); } } connectionObject.add(remoteDirectoryExists); // check if the user has rights as to the resource resources = connection.listFiles(remoteResourcePath); // if (!actionName.equals("list-resources") && !remoteDirectoryExists) { // // System.out.println("permissions; " // // + resources[0].hasPermission(FTPFile.USER_ACCESS, // // FTPFile.READ_PERMISSION)); // } // if (!remoteDirectoryExists) { // FTPconnection.setFileType(org.apache.commons.net.ftp.FTP.BINARY_FILE_TYPE); // is = FTPconnection.retrieveFileStream(remoteResourcePath); // if (is == null || resources.length == 0) { // throw new // Exception(ErrorMessages.err_FTC004); // } // } connectionObject.add(resources); return connectionObject; }
From source file:s32a.Client.Startup.FTPHandler.java
/** * Retrieves server and codebase info from FTP server. * Codebase will need to be queried separately afterwards. * @return /*ww w .jav a 2s . com*/ */ public List<ServerInfo> getFTPData() { FTPClient client = null; FileInputStream fis = null; FileOutputStream fos = null; List<ServerInfo> output = new ArrayList<>(); if (SSL) { client = new FTPSClient(false); } else { client = new FTPClient(); } try { System.out.println("connecting"); client.connect(ftpServer); boolean login = client.login(this.username, this.password); System.out.println("login: " + login); client.enterLocalPassiveMode(); // Reads codebase file from server File codebase = new File("codebase.properties"); fos = new FileOutputStream(codebase.getAbsolutePath()); client.retrieveFile("/Airhockey/Codebase/codebase.properties", fos); fos.close(); this.codebaseURL = this.readCodebaseInfo(codebase); // Retrieves all currently active files from server File server = null; for (FTPFile f : client.listFiles("/Airhockey/Servers")) { server = new File(f.getName()); fos = new FileOutputStream(server); client.retrieveFile("/Airhockey/Servers/" + f.getName(), fos); fos.close(); output.add(this.readServerFile(server)); } //Removes null entries output.remove(null); client.logout(); } catch (IOException ex) { System.out.println("IOException: " + ex.getMessage()); ex.printStackTrace(); } catch (Exception ex) { System.out.println("exception caught: " + ex.getMessage()); } finally { try { if (fis != null) { fis.close(); } if (fos != null) { fos.close(); } client.disconnect(); } catch (IOException e) { e.printStackTrace(); } } return output; }
From source file:s32a.CodebaseDeployer.java
/** * Uploads given files to ftp server./*from www . j a v a 2s. c o m*/ * * @param input key: desired name on server, Value: file to upload. */ private void uploadFiles(Map<String, File> input) { FTPClient client = null; if (SSL) { client = new FTPSClient(false); } else { client = new FTPClient(); } FileInputStream fis = null; FileOutputStream fos = null; try { System.out.println("connecting"); client.connect(ftpServer); boolean login = client.login(this.userName, this.password); System.out.println("login: " + login); client.enterLocalPassiveMode(); // client.setFileType(FTP.ASCII_FILE_TYPE); //Creates all directories required on the server System.out.println("creating directories"); client.makeDirectory("Airhockey"); client.makeDirectory("Airhockey/Codebase"); client.makeDirectory("Airhockey/Servers"); client.makeDirectory("Airhockey/Codebase/s32a"); System.out.println("default directories made"); for (String s : directories) { client.makeDirectory(s); } //Uploads codebase URL fis = new FileInputStream(this.codebaseFile); boolean stored = client.storeFile("Airhockey/Codebase/codebase.properties", fis); // client.completePendingCommand(); System.out.println("Stored codebase file: " + stored); fis.close(); // Removes references to all servers for (FTPFile f : client.listFiles("Airhockey/Servers")) { if (f.isFile()) { System.out.println("Deleting Server Listing: " + f.getName()); client.deleteFile("/Airhockey/Servers/" + f.getName()); } } // Uploads all class files System.out.println("Uploading classes"); String defaultLoc = fs + "Airhockey" + fs + "Codebase" + fs; for (String dest : input.keySet()) { fis = new FileInputStream(input.get(dest)); if (!client.storeFile(defaultLoc + dest, fis)) { System.out.println("unable to save: " + defaultLoc + dest); } fis.close(); // client.completePendingCommand(); } client.logout(); } catch (IOException ex) { System.out.println("IOException: " + ex.getMessage()); ex.printStackTrace(); } catch (Exception ex) { System.out.println("exception caught: " + ex.getMessage()); } finally { try { if (fis != null) { fis.close(); } if (fos != null) { fos.close(); } client.disconnect(); System.exit(0); } catch (IOException e) { e.printStackTrace(); } } }
From source file:simplehttpdb.net.FTPHelper.java
/** * searches the FTP directory for a fitting file to add a new entry * creates a new file as necessary//www . j av a 2s .com * TODO: add support for multiple encryption keys * * @param ftpClient * @param rootDir * @param relPath * @return * @throws IOException */ public String findFileToAddNewEntry(FTPClient ftpClient, String rootDir, String relPath) throws IOException { String localDir = rootDir + relPath; Logger.getLogger(getClass().getName()).log(Level.INFO, "search for files in:" + localDir + " relPath:" + relPath); FTPFile[] files = ftpClient.listFiles(localDir); String result = ""; for (FTPFile file : files) { //just handle files with name.legth>2 (avoiding "." and ".." as filenames) if (file.getName().length() < 3) { continue; } if (file.getSize() < 1024 * Definitions.MAX_FILE_SIZE) { result = relPath + file.getName(); break; } } if (result.equals("")) { //we have to create a new file result = relPath + UUID.randomUUID() + ".xml"; } return result; }
From source file:testing.FTPClientExample.java
public static final void main(String[] args) { boolean storeFile = false, binaryTransfer = false, error = false, listFiles = false, listNames = false, hidden = false;//from w ww . j a va 2s.co m boolean localActive = false, useEpsvWithIPv4 = false, feat = false, printHash = false; boolean mlst = false, mlsd = false; boolean lenient = false; long keepAliveTimeout = -1; int controlKeepAliveReplyTimeout = -1; int minParams = 5; // listings require 3 params String protocol = null; // SSL protocol String doCommand = null; String trustmgr = null; String proxyHost = null; int proxyPort = 80; String proxyUser = null; String proxyPassword = null; args = new String[100]; args[0] = "-d"; args[1] = "localhost"; args[2] = "adminroot"; args[3] = "adminroot"; args[4] = "RSAPrivate.key"; args[5] = ".\\FTPServer2\\RSAPrivate.key"; int base = 0; OUTER: for (base = 0; base < args.length; base++) { switch (args[base]) { case "-s": storeFile = true; break; case "-a": localActive = true; break; case "-b": binaryTransfer = true; break; case "-c": doCommand = args[++base]; minParams = 3; break; case "-d": mlsd = true; minParams = 3; break; case "-e": useEpsvWithIPv4 = true; break; case "-f": feat = true; minParams = 3; break; case "-h": hidden = true; break; case "-k": keepAliveTimeout = Long.parseLong(args[++base]); break; case "-l": listFiles = true; minParams = 3; break; case "-L": lenient = true; break; case "-n": listNames = true; minParams = 3; break; case "-p": protocol = args[++base]; break; case "-t": mlst = true; minParams = 3; break; case "-w": controlKeepAliveReplyTimeout = Integer.parseInt(args[++base]); break; case "-T": trustmgr = args[++base]; break; case "-PrH": proxyHost = args[++base]; String parts[] = proxyHost.split(":"); if (parts.length == 2) { proxyHost = parts[0]; proxyPort = Integer.parseInt(parts[1]); } break; case "-PrU": proxyUser = args[++base]; break; case "-PrP": proxyPassword = args[++base]; break; case "-#": printHash = true; break; default: break OUTER; } } int remain = args.length - base; if (remain < minParams) // server, user, pass, remote, local [protocol] { System.err.println(USAGE); System.exit(1); } String server = args[base++]; int port = 0; String parts[] = server.split(":"); if (parts.length == 2) { server = parts[0]; port = Integer.parseInt(parts[1]); } String username = args[base++]; String password = args[base++]; String remote = null; if (args.length - base > 0) { remote = args[base++]; } String local = null; if (args.length - base > 0) { local = args[base++]; } final FTPClient ftp; if (protocol == null) { if (proxyHost != null) { System.out.println("Using HTTP proxy server: " + proxyHost); ftp = new FTPHTTPClient(proxyHost, proxyPort, proxyUser, proxyPassword); } else { ftp = new FTPClient(); } } else { FTPSClient ftps; if (protocol.equals("true")) { ftps = new FTPSClient(true); } else if (protocol.equals("false")) { ftps = new FTPSClient(false); } else { String prot[] = protocol.split(","); if (prot.length == 1) { // Just protocol ftps = new FTPSClient(protocol); } else { // protocol,true|false ftps = new FTPSClient(prot[0], Boolean.parseBoolean(prot[1])); } } ftp = ftps; if ("all".equals(trustmgr)) { ftps.setTrustManager(TrustManagerUtils.getAcceptAllTrustManager()); } else if ("valid".equals(trustmgr)) { ftps.setTrustManager(TrustManagerUtils.getValidateServerCertificateTrustManager()); } else if ("none".equals(trustmgr)) { ftps.setTrustManager(null); } } if (printHash) { ftp.setCopyStreamListener(createListener()); } if (keepAliveTimeout >= 0) { ftp.setControlKeepAliveTimeout(keepAliveTimeout); } if (controlKeepAliveReplyTimeout >= 0) { ftp.setControlKeepAliveReplyTimeout(controlKeepAliveReplyTimeout); } ftp.setListHiddenFiles(hidden); // suppress login details ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true)); try { int reply; if (port > 0) { ftp.connect(server, port); } else { ftp.connect(server); } System.out.println("Connected to " + server + " on " + (port > 0 ? port : ftp.getDefaultPort())); // After connection attempt, you should check the reply code to verify // success. reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); System.err.println("FTP server refused connection."); System.exit(1); } } catch (IOException e) { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException f) { // do nothing } } System.err.println("Could not connect to server."); e.printStackTrace(); System.exit(1); } __main: try { if (!ftp.login(username, password)) { ftp.logout(); error = true; break __main; } System.out.println("Remote system is " + ftp.getSystemType()); if (binaryTransfer) { ftp.setFileType(FTP.BINARY_FILE_TYPE); } // Use passive mode as default because most of us are // behind firewalls these days. if (localActive) { ftp.enterLocalActiveMode(); } else { ftp.enterLocalPassiveMode(); } ftp.setUseEPSVwithIPv4(useEpsvWithIPv4); if (storeFile) { InputStream input; input = new FileInputStream(local); ftp.storeFile(remote, input); input.close(); } else if (listFiles) { if (lenient) { FTPClientConfig config = new FTPClientConfig(); config.setLenientFutureDates(true); ftp.configure(config); } for (FTPFile f : ftp.listFiles(remote)) { System.out.println(f.getRawListing()); System.out.println(f.toFormattedString()); } } else if (mlsd) { for (FTPFile f : ftp.mlistDir(remote)) { System.out.println(f.getRawListing()); System.out.println(f.toFormattedString()); } } else if (mlst) { FTPFile f = ftp.mlistFile(remote); if (f != null) { System.out.println(f.toFormattedString()); } } else if (listNames) { for (String s : ftp.listNames(remote)) { System.out.println(s); } } else if (feat) { // boolean feature check if (remote != null) { // See if the command is present if (ftp.hasFeature(remote)) { System.out.println("Has feature: " + remote); } else { if (FTPReply.isPositiveCompletion(ftp.getReplyCode())) { System.out.println("FEAT " + remote + " was not detected"); } else { System.out.println("Command failed: " + ftp.getReplyString()); } } // Strings feature check String[] features = ftp.featureValues(remote); if (features != null) { for (String f : features) { System.out.println("FEAT " + remote + "=" + f + "."); } } else { if (FTPReply.isPositiveCompletion(ftp.getReplyCode())) { System.out.println("FEAT " + remote + " is not present"); } else { System.out.println("Command failed: " + ftp.getReplyString()); } } } else { if (ftp.features()) { // Command listener has already printed the output } else { System.out.println("Failed: " + ftp.getReplyString()); } } } else if (doCommand != null) { if (ftp.doCommand(doCommand, remote)) { // Command listener has already printed the output // for(String s : ftp.getReplyStrings()) { // System.out.println(s); // } } else { System.out.println("Failed: " + ftp.getReplyString()); } } else { OutputStream output; output = new FileOutputStream(local); ftp.retrieveFile(remote, output); output.close(); } ftp.noop(); // check that control connection is working OK ftp.logout(); } catch (FTPConnectionClosedException e) { error = true; System.err.println("Server closed connection."); e.printStackTrace(); } catch (IOException e) { error = true; e.printStackTrace(); } finally { if (ftp.isConnected()) { try { ftp.disconnect(); } catch (IOException f) { // do nothing } } } System.exit(error ? 1 : 0); }
From source file:tufts.oki.remoteFiling.RemoteCabinet.java
/** * Creates an iterator which lists the entries in this cabinet. A check is made to * see if this cabinet was previously opened. If not, it is opened and initialized * with the entries contained in it./*from w w w .j a v a 2 s .c o m*/ * * @author Mark Norton * * @return Return an iterator for the entries in this cabinet. */ public osid.filing.CabinetEntryIterator entries() throws osid.filing.FilingException { // Check to see if this cabinet is unopened. If not, intialize it. if (!initialized) { // Initialize the directory by getting all entries contained in it. FTPFile[] files = null; try { String rootBase = rc.getRootBase(); RemotePath path = new RemotePath(rootBase, this); String pathname = path.getPathString(); //System.out.println("PATHNAME:"+pathname); FTPClient client = rc.getClient(); files = client.listFiles(pathname); // Executes an FTP LIST command. osid.shared.Agent agentOwner = super.getCabinetEntryAgent(); // Iterate over the files returned and create CabinetEntries for them. // Note that there is a lot of other information in the FTPFile objects which // could be added to the entries being created here. In particular, creation // date. for (int i = 0; files != null && i < files.length; i++) { if (files[i].isDirectory()) { //System.out.println ("\tDir " + i + ": " + files[i].getName()); //RemoteCabinet cab = (RemoteCabinet) this.createCabinet (files[i].getName()); add(new RemoteCabinet(files[i].getName(), agentOwner, this, rc)); } else if (files[i].isFile()) { //System.out.println ("\tFile " + i + ": " + files[i].getName()); //RemoteByteStore store = (RemoteByteStore) this.createByteStore (files[i].getName()); add(new RemoteByteStore(files[i].getName(), this, rc)); } // Unknown cases are ignored. } } catch (java.io.IOException ex1) { throw new osid.filing.FilingException(osid.filing.FilingException.IO_ERROR); } // The current working directory is now intialized. initialized = true; } return (osid.filing.CabinetEntryIterator) new RemoteCabinetEntryIterator(children); }
From source file:ubic.basecode.util.NetUtils.java
/** * determine if a file exists on the remote server. * /*from w w w . ja va2 s.com*/ * @param f * @param seekFile * @return the size of the file * @throws FileNotFoundException if the file does not exist. * @throws IOException on other IO errors. */ public static long checkForFile(FTPClient f, String seekFile) throws IOException { f.enterLocalPassiveMode(); FTPFile[] allfilesInGroup = f.listFiles(seekFile); if (allfilesInGroup == null || allfilesInGroup.length == 0) { throw new FileNotFoundException("File " + seekFile + " does not seem to exist on the remote host"); } return allfilesInGroup[0].getSize(); }
From source file:ubic.basecode.util.NetUtils.java
/** * Get the size of a remote file./*from ww w . ja v a 2s. c o m*/ * * @param f FTPClient * @param seekFile * @return * @throws IOException */ public static long ftpFileSize(FTPClient f, String seekFile) throws IOException { if (f == null || !f.isConnected()) { throw new IOException("No FTP connection"); } f.enterLocalPassiveMode(); int maxTries = 3; for (int i = 0; i < maxTries; i++) { FTPFile[] files = f.listFiles(seekFile); if (files.length == 1) { return files[0].getSize(); } else if (files.length > 1) { throw new IOException(files.length + " files found when expecting one"); } // otherwise keep trying. } throw new FileNotFoundException( "Didn't get expected file information for " + seekFile + " (" + maxTries + " attempts)"); }