Public Function GetFTPDirectory() As String Dim szDir As String szDir = String(1024, Chr$(0)) If (FtpGetCurrentDirectory(hConnection, szDir, 1024) = False) Then ErrorOut Err.LastDllError, "FtpGetCurrentDirectory" Exit Function Else GetFTPDirectory = Left(szDir, InStr(1, szDir, String(1, 0), vbBinaryCompare) - 1) End If End FunctionPrivate Sub RefreshDirectoryListing() Dim Item As cDirItem Dim lstX As ListItem Dim sAttr As String '显示文件属性的字符串 lblDir.Caption = "Current Directory: " & Trim(mFTP.GetFTPDirectory) '显示当前路径 mFTP.GetDirectoryListing "*.*" '获得当前路径
lv.ListItems.Clear '清除lv控件的Item 'Set lstX = lv.ListItems.Add(, , "..") 'lstX.SmallIcon = 1 For Each Item In mFTP.Directory sAttr = "" With Item If .Archive Then sAttr = sAttr & " A " Else sAttr = sAttr & " - " If .Compressed Then sAttr = sAttr & " C " Else sAttr = sAttr & " - " If .Directory Then sAttr = sAttr & " D " Else sAttr = sAttr & " - " If .Hidden Then sAttr = sAttr & " H " Else sAttr = sAttr & " - " If .Normal Then sAttr = sAttr & " N " Else sAttr = sAttr & " - " If .Offline Then sAttr = sAttr & " O " Else sAttr = sAttr & " - " If .ReadOnly Then sAttr = sAttr & " R " Else sAttr = sAttr & " - " If .System Then sAttr = sAttr & " S " Else sAttr = sAttr & " - " If .Temporary Then sAttr = sAttr & " T " Else sAttr = sAttr & " - " End With '设置属性字符串
Set lstX = lv.ListItems.Add(, , Item.Filename) With lstX If Item.Directory Then '如果是目录 .SmallIcon = 1 .SubItems(1) = "< Directory >" Else '文件 .SmallIcon = 2 .SubItems(1) = Item.FileSize .SubItems(2) = Item.LastWriteTime .SubItems(3) = sAttr End If End With Next
贴出一点源代码
好不好呀?
Dim szDir As String
szDir = String(1024, Chr$(0))
If (FtpGetCurrentDirectory(hConnection, szDir, 1024) = False) Then
ErrorOut Err.LastDllError, "FtpGetCurrentDirectory"
Exit Function
Else
GetFTPDirectory = Left(szDir, InStr(1, szDir, String(1, 0), vbBinaryCompare) - 1)
End If
End FunctionPrivate Sub RefreshDirectoryListing()
Dim Item As cDirItem
Dim lstX As ListItem
Dim sAttr As String
'显示文件属性的字符串
lblDir.Caption = "Current Directory: " & Trim(mFTP.GetFTPDirectory)
'显示当前路径
mFTP.GetDirectoryListing "*.*"
'获得当前路径
lv.ListItems.Clear
'清除lv控件的Item
'Set lstX = lv.ListItems.Add(, , "..")
'lstX.SmallIcon = 1
For Each Item In mFTP.Directory
sAttr = ""
With Item
If .Archive Then sAttr = sAttr & " A " Else sAttr = sAttr & " - "
If .Compressed Then sAttr = sAttr & " C " Else sAttr = sAttr & " - "
If .Directory Then sAttr = sAttr & " D " Else sAttr = sAttr & " - "
If .Hidden Then sAttr = sAttr & " H " Else sAttr = sAttr & " - "
If .Normal Then sAttr = sAttr & " N " Else sAttr = sAttr & " - "
If .Offline Then sAttr = sAttr & " O " Else sAttr = sAttr & " - "
If .ReadOnly Then sAttr = sAttr & " R " Else sAttr = sAttr & " - "
If .System Then sAttr = sAttr & " S " Else sAttr = sAttr & " - "
If .Temporary Then sAttr = sAttr & " T " Else sAttr = sAttr & " - "
End With
'设置属性字符串
Set lstX = lv.ListItems.Add(, , Item.Filename)
With lstX
If Item.Directory Then
'如果是目录
.SmallIcon = 1
.SubItems(1) = "< Directory >"
Else
'文件
.SmallIcon = 2
.SubItems(1) = Item.FileSize
.SubItems(2) = Item.LastWriteTime
.SubItems(3) = sAttr
End If
End With
Next