该错误出现是因为iis ftp不支持MDTM命令,该命令是用于获取文件的最后修改时间。解决办法是禁用FTP客户端中的MDTM命令。可以在iis ftp的控制面板中的“FTP身份验证规则”中设置,'授权用户”和“所有用户”中的“MDTM”命令勾选框取消勾选即可。或者,在FTP客户端中使用其他支持的命令来获取文件的最后修改时间,例如“LIST”命令。以下是取消勾选MDTM命令的示例代码:
- 打开iis ftp管理控制台
- 选择“FTP身份验证规则”
- 找到“授权用户”和“所有用户”选项卡
- 取消“MDTM”命令的勾选框
- 保存设置
示例代码:
FTPWebRequest request = (FTPWebRequest)FTPWebRequest.Create("ftp://example.com/files");
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
request.Credentials = new NetworkCredential("username", "password");
using (var response = (FtpWebResponse)request.GetResponse())
using (var responseStream = response.GetResponseStream())
using (var reader = new StreamReader(responseStream))
{
while (!reader.EndOfStream)
{
var line = reader.ReadLine();
var tokens = line.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var fileName = tokens.Last(); // 文件名
var fileDateTime = DateTime.Parse(tokens[5] + " " + tokens[6]); // 最后一次修改时间
}
}