使用用于.NET 2.0的FTPClient。
我连接到一个vsftpd服务器,我可以写文件,但是我不能运行命令。
当我使用命令提示符登录到ftp服务器时,我也可以运行QUOTE SITE CHMOD命令。我得到了一个200 SITE CHMOD命令。
这是服务器上的配置设置吗?
ftpClient.Connect();
string ftpLoc = folder + fileName;
using (var fileStream = File.OpenRead(localFile))
using (Stream ostream = ftpClient.OpenWrite(ftpLoc))
{
try
{
var buffer = new byte[8 * 1024];
int count;
while ((count = fileStream.Read(buffer, 0, buffer.Length)) > 0)
{
ostream.Write(buffer, 0, count);
}
FtpReply reply;
if (!(reply = ftpClient.Execute("SITE chmod 775 " + fileName)).Success)
{
throw new FtpCommandException(reply);
}
}
catch (Exception e)
{
logSW.WriteLine("ftp error: " + e.InnerException + " | " + e.Message);
return e.Message;
}
}
1条答案
按热度按时间bejyjqdl1#
这可能取决于您的登录方式。
来自VSFTPD configuration manpage
chmod_enable命令
启用时,允许使用SITE CHMOD命令。注意!这仅适用于本地用户。匿名用户永远无法使用SITE CHMOD。