我可以上传单个文件,现在我该如何上传多个文件到FTP服务器:
这是我正在使用的代码:
私有子上传文件(ByVal FTPAddress As String,ByVal filePath As String,ByVal username As String,ByVal password As String) '创建FTP请求
Try
Dim request As FtpWebRequest = DirectCast(FtpWebRequest.Create(FTPAddress & "/" & Path.GetFileName(filePath)), FtpWebRequest)
request.Method = WebRequestMethods.Ftp.UploadFile
request.Credentials = New NetworkCredential(username, password)
request.UsePassive = True
request.UseBinary = True
request.KeepAlive = False
'Load the file
Dim stream As FileStream = File.OpenRead(filePath)
Dim buffer As Byte() = New Byte(CInt(stream.Length - 1)) {}
stream.Read(buffer, 0, buffer.Length)
stream.Close()
'Upload file
Dim reqStream As Stream = request.GetRequestStream()
reqStream.Write(buffer, 0, buffer.Length)
reqStream.Close()
MsgBox("Uploaded Successfully", MsgBoxStyle.Information)
Catch
MsgBox("Failed to upload.Please check the ftp settings", MsgBoxStyle.Critical)
End Try
End Sub
Private Sub btnUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpload.Click
btnUpload.Enabled = False
Application.DoEvents()
uploadFile(txtFTPAddress.Text, txtFilePath.Text, txtUsername.Text, txtPassword.Text)
btnUpload.Enabled = True
End Sub
这是我修改后的代码,但它并没有起作用:
If Me.FolderBrowserDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim f As New IO.DirectoryInfo(Me.FolderBrowserDialog1.SelectedPath)
For Each file As IO.FileInfo In f.GetFiles
Select Case file.Extension.ToLower
Case ".jpg", ".bmp", ".gif", ".png", ".ico"
CheckedListBox1.Items.Add(file.FullName, CheckState.Checked)
End Select
Next
For pix As Integer = 0 To CheckedListBox1.CheckedItems.Count - 1
btnUpload.Enabled = False
Application.DoEvents()
uploadFile(txtFTPAddress.Text, txtFilePath.Text, txtUsername.Text, txtPassword.Text)
btnUpload.Enabled = True
Next
End If
End Sub