在VB.NET中的FTPD程序中执行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.