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