使用 .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;
}
}
这可能取决于您的登录方式。
来自 VSFTPD 配置手册页
chmod_启用
启用后,允许使用 SITE CHMOD 命令。 注意!这仅适用于本地用户。匿名用户永远无法使用 SITE CHMOD。
Default: YES