这些系统的属性真不会改,寸步难行呀,还麻烦检查修改一下红色后面的代码
'下载ftp上最近1天的新文件
' 设置FTP服务器地址、用户名和密码
Dim ftpServer As String = "ftp://192.168.1.24"
Dim username As String = "anonymous"
Dim password As String = "anonymous-guest"
' 获取当前日期,并减去1天
Dim currentDate As DateTime = DateTime.Now.AddDays( - 1)
' 创建FtpWebRequest对象并设置被动模式
Dim request As System.Net.FtpWebRequest = System.Net.FtpWebRequest.Create(ftpServer & "/") ' As System.Net.FtpWebRequest)
request.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails
request.UsePassive = True
request.Credentials = New System.Net.NetworkCredential(username, password)
' 发送请求并获取响应
Dim response As System.Net.FtpWebResponse = request.GetResponse()
Dim reader As io.StreamReader = New io.StreamReader(response.GetResponseStream())
' 读取响应并显示文件列表
Dim lines() As String = reader.ReadToEnd().Split(vbCrLf)
For Each line As String In lines
If line.Contains("drwxr-xr-x") Then ' 目录
Console.WriteLine("Directory: " & line)
ElseIf line.Contains("-rwxr-xr-x") Then ' 文件
' 检查文件修改时间是否在最近1天内
Dim fileTime As DateTime = DateTime.Parse(line.Split(" "c)(1))
If fileTime >= currentDate Then
Console.WriteLine("File: " & line)
' 在这里下载文件到本地
' 假设你要下载的文件名为filename,本地保存路径为localPath
Dim filename As String = line.Split(" "c)(0).Split("."c)(0) & line.Split("."c)(1)
Dim localPath As String = "C:\data\" & filename
Using localFileStream As io.FileStream = New io.FileStream(localPath, io.FileMode.Create)
Dim buffer(1024) As Byte
Dim bytesRead As Integer = 0
Dim fileInfo As FtpWebRequest = request.GetRequestStream()
fileInfo.Method = WebRequestMethods.Ftp.DownloadFile
fileInfo.UsePassive = True
fileInfo.Credentials = New NetworkCredential(username, password)
fileInfo.ContentOffset = 0
fileInfo.WriteTimeout = 200000 ' 设置超时时间,单位为毫秒
While (True)
bytesRead = fileInfo.Read(buffer, 0, buffer.Length)
If bytesRead = 0 Then
Exit While
End If
localFileStream.Write(buffer, 0, bytesRead)
End While
fileInfo.Close()
End Using
End If
End If
Next
' 关闭连接并释放资源
reader.Close()
response.Close()