【发布时间】:2015-09-03 08:10:59
【问题描述】:
在 MFC VC++ 的 FTP 客户端应用程序中,我列出了服务器的目录文件并成功删除它们。 LIST 和 NLIST 命令在列出目录文件/内容时工作正常。
除了文件,两个文件夹(包含未列出的文件)出现在正确的列表中。但是,当我将 DELE 命令传递给这些文件夹时,会返回错误并且文件夹仍然存在。我觉得这是因为它们是文件夹。
下面是我实现的Delete()函数:
int CFTPClient::Delete(const tstring& strFile) const
{
ASSERT( !strFile.empty() );
CReply Reply;
if( !SendCommand(CCommand::DELE(), strFile, Reply) )
return FTP_ERROR;
return SimpleErrorCheck(Reply);
}
我的问题是:FTP 中是否有删除/删除文件夹的命令?我指的是 RFC 959 FTP 协议。 DELE 和 RMD 命令不适用于文件夹。
【问题讨论】:
-
为什么
RMD不起作用? "此命令将路径名中指定的目录作为目录删除" -
“返回错误” - 哪个错误?无论如何,首先尝试对文件夹的文件进行 DELE,然后对文件夹本身尝试 RMD。
-
使用 RMD 和 DELE 时,WireShark 上出现“521 删除目录时出错”和“521 删除文件时出错”... NLIST 列出了目录文件和文件夹,但文件夹内容我无法访问...有什么想法可以以某种方式访问或“打开”文件夹吗?