怎样使用Inet Tranfer控件实现从ftp站点上自动下载文件名中包含特定字符串的文件。例如:用户输入字符串"2005",然后自动下载FTP站点上所有文件名中包含该字符串的文件。或者用其他方法实行这个功能???
解决方案 »
- 高分求VB的一個类转换成ASP语句
- 哪位大虾能否提供VB+DIRECTX的学习资料啊?
- 请问,如何用vb实现浮动的工具栏?
- VB中的打印都有那几种方法,那一种方法最好?
- 解释一下recordset对象的几个属性设置的意思
- 求助:关于字符串处理的问题
- 如何使用“字节数组”?
- 我用winsock控件发EMAIL,出现连接成功的响应但邮件内容却发不出去出现554 Transaction failed.....HELP!!!!!
- 哈哈,想要一个图标或图片,是一只手,想在MOUSEMOVE时将鼠标变成手(像链接)
- 用webbrowser控件,顯示網頁後,單擊數表右鍵,出現菜單,如何自定義那個菜單.
- listview的问题
- 单机数据库软件,access感觉效率不高,大家有什么好建议!
如用户输入2005
程序生成 app2005_001.dat-app2005_099.dat 一系列文件名,提交到ftp传输.
对应的,你的ftp上文件就应是按程序生成文件名串的规则来命名.或者你是想弄个模糊的吗?
比如,不管ftp上什么文件名,只要带有2005字样的,统统下载?1先行取得ftp上文件列表.斩头去尾留下文件名部分.进数组
2与用户的输入比对.含用户输入串的提交传输
在窗体添加inet控件,一个command控件
Dim FtpUrl As String
Dim Username As String
Dim PassWord As StringPrivate Sub Command1_Click()
GetFileList (Trim("你要找的远程主机的目录"))
End SubPrivate Sub Form_Load()
FtpUrl = "ftp服务器地址"
Username = "用户名"
PassWord = "密码"
init
end sub
Private Function init()
On Error GoTo eh
'------------------------------------------------------------------
'初始化Inet
With Form1.Inet1
Form1.List1.AddItem (CStr(Now) + " init inet")
.URL = "ftp://" + Trim(FtpUrl)
.Username = Trim(Username)
.PassWord = Trim(PassWord)
.Execute , "dir"
'Inet的StillExecuting表示是否成功,否则一直等待
While .StillExecuting
DoEvents
Wend
'向list中写入状态信息
Form1.List1.AddItem CStr(Now) + " Inet init successfully!"
Form1.Refresh
End With
Exit Function
eh:
MsgBox "error", vbOKOnly, Me.Caption
End Function
Private Sub GetFileList(ByVal sDIR As String)Dim tstrsMe.List1.AddItem CStr(Now) + "显示文件名称"
Me.List1.AddItem "*****************开始********************"
Me.Refresh
With Form1.Inet1 While .StillExecuting = True
DoEvents
Wend
'inet控件的方法 查找远程主机的文件目录
.Execute , "dir " + sDIR + ""
While .StillExecuting = True
DoEvents
Wend
'Inet控件的GetChunk方法得到目录路径数据
Tstr = .GetChunk(0)
tstrs = Split(Tstr, vbCrLf)
For i = 0 To UBound(tstrs)
If Trim(tstrs(i)) <> "./" And Trim(tstrs(i)) <> "../" And Trim(tstrs(i)) <> "" Then
Me.List1.AddItem tstrs(i)
Me.Refresh
End If
Next
Me.List1.AddItem "*****************结束********************"
Me.Refresh
End WithEnd Sub
http://community.csdn.net/Expert/topic/3544/3544741.xml?temp=.5673944
creazyfish(梳分头的鱼) ( ) 信誉:100
的完整回复,你要的关键内容都在了.取得文件列表.
结合兔子的:
==========
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写出了上楼的,这楼的你自然会明白了.写出了一级目录,自然就可以递归到N级目录.