【问题标题】:Problems listing files with FTPWebRequest使用 FTPWebRequest 列出文件时出现问题
【发布时间】:2011-06-21 16:21:33
【问题描述】:

我在使用 .NET FTPWebRequest 类将文件上传到 vsftpd 服务器时遇到了一些问题。

首先,有没有办法使用 ListDirectoryDe​​tails 请求列出隐藏文件?现在我没有得到任何以“.”开头的文件/目录。

其次,当我请求一个名称以“-”开头的目录列表时,它会返回父目录的列表。例如,如果我请求一个“/-DIR”列表,我会得到一个“/”列表。

我相信如果发送“LIST -a ./&ltdirectory&gt”命令而不仅仅是“LIST”,则可以解决这些问题,但尝试在 FTPWebRequest 的 .Method 属性中添加命令会导致异常(根据文档)。

有没有办法解决这个问题?谢谢。

【问题讨论】:

    标签: .net linux ftpwebrequest


    【解决方案1】:

    我为我编写的应用程序编写了一个 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
    

    如果您想获得工具包的副本,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多