我正在试图弄清楚如何在列表视图中列出FTP文件夹的所有文件,但我无法弄清楚如何执行此操作。我尝试使用相同的方法,就像我要列出我的硬盘中的文件夹的内容。但这失败了。
有什么想法吗?
我想到了这样的东西(在vb.net中,但我确信c#非常相似):
Public Sub FTPFill()
Dim ftpreq As FtpWebRequest = FtpWebRequest.Create("ftp://FTPRoot/")
With ftpreq
.Credentials = New NetworkCredential(My.Settings.FTPUsername, My.Settings.FTPPassword)
.Method = WebRequestMethods.Ftp.ListDirectory
End With
Dim sr As New StreamReader(ftpreq.GetResponse().GetResponseStream())
Dim str As String = sr.ReadLine()
For Each str In sr.ReadLine()
Dim lvi As New ListViewItem(sr.ReadLine())
lvi.ImageIndex = 0
lvi.SubItems.Add("Folder")
lvi.SubItems.Add(Path.GetExtension((sr.ReadLine())))
ListView.Items.Add(lvi)
Next
End Sub
但是我不确定我在“For Each”循环中做了什么。
答案 0 :(得分:2)
您似乎主要误解了使用 sr.ReadLine()时会发生什么。它实际上是一种“做东西”的方法,而不仅仅是下一行的属性。
每次使用它时,都会读取另一行响应流。现在你正在阅读一句话:
......看起来你真的想在这里一次看一行。
我建议您使用此FTP客户端作为指南,或者只是在项目中引用它... http://www.codeproject.com/KB/IP/FtpClient.aspx - 这样您就可以使用比响应字符串更直观的模型。< / p>
另外,你在ForEach循环中所做的只是创建一个ListViewItem,并将它添加到ListView中。有很多教程要做这个(只是谷歌如何在VB.NET中使用ListView ),这里有一个让你入门:
http://dotnetref.blogspot.com/2007/08/using-listview-in-vbnet.html
希望这有帮助。