在自定义VB.NET FTP服务器中实现FTP目录列表命令(NLST)命令

问题描述 投票:0回答:1

我正在尝试使用 VB.NET 编写 FTP 守护程序。当客户端发送

NLST
命令来获取路径中的文件或文件夹时,守护进程一次发送一个文件或文件夹名称(我必须每次都写入
ls
以获取一个文件或文件夹的名称)仅文件夹),我尝试了很多方法,但都不起作用。请帮助我,谢谢。

这是我使用的代码:

Case "NLST"
    Dim str As New StringBuilder()
    Dim di = New DirectoryInfo(work_dir)

    For Each file In di.EnumerateFileSystemInfos()
        str.Append(file.Name).Append(Environment.NewLine)
    Next
    SendResponse(writer, str.ToString().TrimEnd)

当我运行程序并在命令提示符下键入

ls
命令时,它会发送
NLST
命令,这是很正常的,但问题是我的程序每次键入
ls
命令时都会发送一个文件在 CMD 中。

windows vb.net cmd ftp
1个回答
0
投票

虽然您的代码还不清楚,但我相信您正在将“文件”发送回 control 连接。

但是目录列表必须发送到data连接。
阅读 FTP 规范 (RFC 959):
https://datatracker.ietf.org/doc/html/rfc959#page-8

© www.soinside.com 2019 - 2024. All rights reserved.