【发布时间】:2017-02-28 02:48:36
【问题描述】:
我想将一个文件从我的 FTP 服务器拉到我的本地驱动器中。然而,这样做最困难的部分是文件名是一个每天都在变化的时间戳。无论文件如何随日期发生变化,程序都应下载该文件;年、月、时、分和秒。名称的格式始终相同。文件名示例在下面以粗体显示。请指教!
例如,
用户名 - meUser
密码 - mepswrd
以及 FTP 的 URL/afea/euser/aefe/aole/efa/
以及下载后我希望文件保存的路径。C:\Users\alae\Desktop\loaef
并且文件格式为20160223.171234.BA_DESRP_20160121.txt
文件中唯一不变的部分是BA_DESRP,所有其他部分都可以更改,因为它是一个时间戳。
这是我开始的代码:
Const lf As String = "C:\Users\alae\Desktop\loaef"
Const rf As String = "/afea/euser/aefe/aole/efa/"
Const ht As String = "host"
Const un As String = "username"
Const pw As String = "password"
Dim URI As String = ht & rf
Dim ftp As System.Net.FtpWebRequest = _
CType(FtpWebRequest.Create(URI), FtpWebRequest)
ftp.Credentials = New _
System.Net.NetworkCredential(un, pw)
【问题讨论】:
-
您需要先获取目录中的文件列表,如果有多个文件,然后再获取您要下载的文件。查找 WebRequestMethods.Ftp.ListDirectoryDetails
-
好的,但是所有这些文件(其中多个)都具有相似的格式(时间戳),它们会发生变化。你能举个例子吗?我也会看看你的建议吗?
-
想想吧。文件名是
String,所以您要问的基本上是如何确定String是否包含另一个String。我非常有信心,如果您需要更多信息,您会在网络上找到大量有关如何执行此操作的信息。 -
FTP 文件夹中是否总是只有一个
BA_DESRP文件? -
所以让我确保我理解这个问题。您下载的目录将包含多个具有相同文件命名约定的文件,但是每当您去那里获取文件时,您总是想获取最新的文件,对吗?所以只要这个目录中没有数千个文件,.Ftp.ListDirectoryDetails 方法应该允许你在这里做你想做的事。返回文件列表后,您可以检查时间戳,也可以根据文件名自行计算,以确定哪个是最新的。我将添加返回文件列表的代码
标签: vb.net ftp timestamp filenames ftpwebrequest