1

我必须检查 FTP 服务器是否允许我删除文件。不删除现有文件或发送文件并尝试删除该文件。目前,我使用“发送文件并尝试删除它”虚拟解决方案,但有时我没有写权限。

我使用 Chilkat 库尝试了下面的代码,但据我所知,只有 Read、Write 和 Execute 属性,而 Delete 属性不存在。

var ftp = new Chilkat.Ftp2();

ftp.Hostname = "127.0.0.1";
ftp.Username = "test";
ftp.Password = "test";

ftp.AuthTls = false;
ftp.PassiveUseHostAddr = true;


ftp.Connect();

// To get file permissions in UNIX format, disallow MSLD:
ftp.AllowMlsd = false;

if (ftp.GetDirCount() > 0)
{
    textBox1.AppendText("The permissions format is: " + ftp.GetPermType(0));
    textBox1.AppendText("\r\n");
}

for(var i = 0; i < ftp.GetDirCount();++i)
{ 
    // Display the permissions and filename
    textBox1.AppendText(ftp.GetPermissions(i) + " " + ftp.GetFilename(i));
    textBox1.AppendText("\r\n");
}

ftp.Disconnect();

那么,根据我上面的解释,是否可以确定FTP服务器是否具有删除文件权限?如果是,

4

1 回答 1

0

FTP 协议中没有 API 来测试权限。

您可以尝试解释从 FTP 目录列表中获得的权限。

但是例如在 *nix 系统上,列表永远不会为您提供足够的信息来做出这样的决定。

顺便说一句,在 *nix 服务器上,如果您对其父目录具有写入权限,则您有权删除文件。创建新文件的相同权限是什么。所以通常,如果你可以创建一个文件,你就可以删除一个文件。但是 FTP 服务器通常会在系统权限之上施加另一个权限。这些通常包括用于创建和删除文件的单独权限。

于 2020-02-03T14:54:46.210 回答