C# 是否在ListView中列出FTP文件夹中的文件?

C# 是否在ListView中列出FTP文件夹中的文件?,c#,vb.net,C#,Vb.net,我想知道如何在listview中列出FTP文件夹的所有文件,但我不知道如何做到这一点。我尝试使用相同的方法,就像我要列出硬盘中文件夹的内容一样。但这失败了 有什么想法吗 我想到了类似的东西(在vb.net中,但我确信c#非常类似): 但我不确定在“For Each”循环中我在做什么 看起来您主要误解了使用sr.ReadLine()时会发生什么情况。它实际上是一个“做事情”的方法,而不仅仅是下一行的属性 每次使用它时,都会读取响应流的另一行。现在你正在读一行: 在循环开始时 在新ListViewI

我想知道如何在listview中列出FTP文件夹的所有文件,但我不知道如何做到这一点。我尝试使用相同的方法,就像我要列出硬盘中文件夹的内容一样。但这失败了

有什么想法吗

我想到了类似的东西(在vb.net中,但我确信c#非常类似):


但我不确定在“For Each”循环中我在做什么

看起来您主要误解了使用sr.ReadLine()时会发生什么情况。它实际上是一个“做事情”的方法,而不仅仅是下一行的属性

每次使用它时,都会读取响应流的另一行。现在你正在读一行:

  • 在循环开始时
  • 在新ListViewItem()的构造函数中
  • Path.GetExtension((sr.ReadLine()))
  • 。。。当你真的想一次看一行的时候

    我建议使用这个FTP客户端作为指南,或者只是在项目中引用它…-这样,您就可以使用比响应字符串更直观的模型

    但是,在ForEach循环中,您要做的只是创建一个ListViewItem,并将其添加到ListView中。有很多教程可以做这件事(只需谷歌如何在VB.NET中使用ListView),下面是一个让您开始学习的教程:


    希望这有帮助。

    Thanx,我会调查一下。但是你知道,我还有一个上传文件子模块,可以很好地连接到progressbar。使用FTP客户端仅仅列出项目不是有点奇怪吗?或者我应该在整个项目中使用FTP客户端?它比.Net中内置的FTPwebrequest好吗?
        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