使用.NET FTPWebRequest类将文件上传到vsftpd服务器时遇到了一些问题。
首先,有没有办法使用ListDirectoryDetails请求列出隐藏文件?现在我没有得到任何以“。”开头的文件/目录。
其次,当我请求名称以“ - ”开头的目录列表时,它返回父目录的列表。例如,如果我请求“/ -DIR”列表,我会得到一个“/".
列表我相信如果“LIST -a ./<directory>”这些问题可以解决。命令被发送而不仅仅是“LIST”,但尝试添加到FTPWebRequest的.Method属性中的命令会导致异常(根据文档)。
有没有办法解决这个问题?感谢。
答案 0 :(得分:0)
我为我编写的应用编写了一个FTPToolkit,它列出了所有文件和目录。这是一个例子:
Public Function ListDirectoryDetail(ByVal directory As String) As FTPdirectory
Dim ftp As System.Net.FtpWebRequest = GetRequest(GetDirectory(directory))
'Set request to do simple list
ftp.Method = System.Net.WebRequestMethods.Ftp.ListDirectoryDetails
Dim str As String = GetStringResponse(ftp)
'replace CRLF to CR, remove last instance
str = str.Replace(vbCr & vbLf, vbCr).TrimEnd(ControlChars.Cr)
'split the string into a list
Return New FTPdirectory(str, _lastDirectory)
End Function
Private Function GetStringResponse(ByVal ftp As FtpWebRequest) As String
'Get the result, streaming to a string
Dim result As String = ""
Using response As FtpWebResponse = DirectCast(ftp.GetResponse(), FtpWebResponse)
Dim size As Long = response.ContentLength
Using datastream As Stream = response.GetResponseStream()
Using sr As New StreamReader(datastream)
result = sr.ReadToEnd()
sr.Close()
End Using
datastream.Close()
End Using
response.Close()
End Using
Return result
End Function
如果您想获得工具包的副本,请告诉我。