Sample code for 30+ languages & platforms
Java

Get FTP Directory Listing as XML

See more FTP Examples

Demonstrates how to call GetXmlDirListing and parse the results.

Chilkat Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Ftp2;
import com.chilkatsoft.chilkat2.Xml;

public class ChilkatExample {

    public static void main(String[] args) {
        // This example assumes Chilkat Ftp2 to have been previously unlocked.
        // See Unlock Ftp2 for sample code.

        Ftp2 ftp = new Ftp2();

        ftp.setHostname("www.my-ftp-server.com");
        ftp.setUsername("mFtpLogin");
        ftp.setPassword("myFtpPassword");

        // Connect to the FTP server.
        String xmlListing;
        try {
            ftp.connectOnly();

            // Authenticate with the FTP server.
            ftp.loginAfterConnectOnly();

            // Retrieve (in XML format) the HOME directory of this FTP account.
            xmlListing = ftp.getXmlDirListing("*.*");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        // Now load the XML and parse it..
        Xml xml = new Xml();
        xml.loadXml(xmlListing);
        System.out.println(xml.getXml());

        // Iterate over the XML...
        int i = 0;
        int numEntries = xml.getNumChildren();
        while (i < numEntries) {
            Xml xEntry = xml.getChild(i);
            if (xEntry.tagEquals("dir")) {
                System.out.println("Directory: " + xEntry.getContent());
            } else {
                int sz = xEntry.getChildIntValue("size");
                System.out.println("File: " + xEntry.getChildContent("name") + ", size: " + sz);
                Xml xLastMod = xEntry.findChild("lastModTime");
                if (xLastMod != null) {
                    int month = xLastMod.getAttrValueInt("m");
                    int year = xLastMod.getAttrValueInt("y");
                    int day = xLastMod.getAttrValueInt("d");
                    System.out.println("    YYYY-MM-DD: " + year + "-" + month + "-" + day);
                    xLastMod.close();
                }
            }

            xEntry.close();
            i = i + 1;
        }

        ftp.disconnect();

        System.out.println("Success.");

        // Sample XML directory listing:
        // <?xml version="1.0" encoding="utf-8" ?>
        // <remoteDir>
        //     <dir>Desktop</dir>
        //     <dir>Documents</dir>
        //     <dir>Downloads</dir>
        //     <dir>Music</dir>
        //     <dir>Pictures</dir>
        //     <dir>Public</dir>
        //     <dir>Templates</dir>
        //     <dir>Videos</dir>
        //     <file>
        //         <name>c.py</name>
        //         <size>1244</size>
        //         <lastModTime full="20151009-000000" y="2015" d="9" m="10" hh="0" mm="0" ss="0" />
        //     </file>
        //     <file>
        //         <name>cacerts_linux</name>
        //         <size>177207</size>
        //         <lastModTime full="20140915-000000" y="2014" d="15" m="9" hh="0" mm="0" ss="0" />
        //     </file>
        //     <file>
        //         <name>empty.txt</name>
        //         <size>0</size>
        //         <lastModTime full="20150917-000000" y="2015" d="17" m="9" hh="0" mm="0" ss="0" />
        //     </file>
        //     <file>
        //         <name>hamlet.xml</name>
        //         <size>279658</size>
        //         <lastModTime full="20160917-084100" y="2016" d="17" m="9" hh="8" mm="41" ss="0" />
        //     </file>
        // </remoteDir>
        //
        //
    }
}