Xojo Plugin
Xojo Plugin
Get FTP Directory Listing as XML
See more FTP Examples
Demonstrates how to call GetXmlDirListing and parse the results.Chilkat Xojo Plugin Downloads
Dim success As Boolean
success = False
// This example assumes Chilkat Ftp2 to have been previously unlocked.
// See Unlock Ftp2 for sample code.
Dim ftp As New Chilkat.Ftp2
ftp.Hostname = "www.my-ftp-server.com"
ftp.Username = "mFtpLogin"
ftp.Password = "myFtpPassword"
// Connect to the FTP server.
success = ftp.ConnectOnly()
If (success <> True) Then
System.DebugLog(ftp.LastErrorText)
Return
End If
// Authenticate with the FTP server.
success = ftp.LoginAfterConnectOnly()
If (success <> True) Then
System.DebugLog(ftp.LastErrorText)
Return
End If
// Retrieve (in XML format) the HOME directory of this FTP account.
Dim xmlListing As String
xmlListing = ftp.GetXmlDirListing("*.*")
If (ftp.LastMethodSuccess <> True) Then
System.DebugLog(ftp.LastErrorText)
Return
End If
// Now load the XML and parse it..
Dim xml As New Chilkat.Xml
success = xml.LoadXml(xmlListing)
System.DebugLog(xml.GetXml())
// Iterate over the XML...
Dim i As Int32
i = 0
Dim numEntries As Int32
numEntries = xml.NumChildren
While i < numEntries
Dim xEntry As Chilkat.Xml
xEntry = xml.GetChild(i)
If (xEntry.TagEquals("dir") = True) Then
System.DebugLog("Directory: " + xEntry.Content)
Else
Dim sz As Int32
sz = xEntry.GetChildIntValue("size")
System.DebugLog("File: " + xEntry.GetChildContent("name") + ", size: " + Str(sz))
Dim xLastMod As Chilkat.Xml
xLastMod = xEntry.FindChild("lastModTime")
If (xEntry.LastMethodSuccess = True) Then
Dim month As Int32
month = xLastMod.GetAttrValueInt("m")
Dim year As Int32
year = xLastMod.GetAttrValueInt("y")
Dim day As Int32
day = xLastMod.GetAttrValueInt("d")
System.DebugLog(" YYYY-MM-DD: " + Str(year) + "-" + Str(month) + "-" + Str(day))
End If
End If
i = i + 1
Wend
success = ftp.Disconnect()
System.DebugLog("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>
//
//