Sample code for 30+ languages & platforms
Visual Basic 6.0

Check if an FTP Listing Entry is a Directory

See more FTP Examples

Demonstrates the Chilkat Ftp2.GetIsDirectory method, which returns whether a cached directory-listing entry is a directory. The only argument is a zero-based index. An invalid index returns false.

Background: Distinguishing directories from files is the first thing most listing code needs — to render a folder tree, to decide whether to recurse, or to apply different handling. This reads the type from the cached listing, so it is a local lookup rather than a server query. Reliability depends on the server's listing format conveying the type, which the common Unix and MLSD formats do.

Chilkat Visual Basic 6.0 Downloads

Visual Basic 6.0
Dim success As Long
success = 0

'  Demonstrates the Ftp2.GetIsDirectory method, which returns whether a cached directory-listing
'  entry is a directory.  The only argument is a zero-based index into the current listing.

Dim ftp As New ChilkatFtp2

ftp.Hostname = "ftp.example.com"
ftp.Username = "myFtpLogin"

'  Normally you would not hard-code the password in source.  You should instead obtain it
'  from an interactive prompt, environment variable, or a secrets vault.
ftp.Password = "myPassword"

success = ftp.Connect()
If (success = 0) Then
    Debug.Print ftp.LastErrorText
    Exit Sub
End If

success = ftp.ChangeRemoteDir("public_html")
If (success = 0) Then
    Debug.Print ftp.LastErrorText
    Exit Sub
End If

'  GetDirCount retrieves the directory listing on the first call and returns the number of
'  entries.  A negative return indicates failure.
Dim n As Long
n = ftp.GetDirCount()
If (n < 0) Then
    Debug.Print ftp.LastErrorText
    Exit Sub
End If

Dim i As Long
For i = 0 To n - 1
    Dim name As String
    name = ftp.GetFilename(i)
    If (ftp.GetIsDirectory(i)) Then
        Debug.Print "[DIR]  " & name
    Else
        Debug.Print "       " & name
    End If

Next

success = ftp.Disconnect()
If (success = 0) Then
    Debug.Print ftp.LastErrorText
    Exit Sub
End If