0

是否有任何 C# 开源组件允许我通过 SFTP 删除文件?

4

5 回答 5

1

尝试SharpSSH

于 2009-07-22T20:49:46.473 回答
1

Tamir Gal 的Sharp SSH是非常流行的 SFTP for .NET 开源实现。试试看。

如果您喜欢完全支持的商业组件,可以试试我们的Rebex SFTP。以下代码说明了这个概念:

using Rebex.Net;

// create client and connect  
Sftp client = new Sftp();
client.Connect(hostname);
client.Login(username, password);

// delete the file
client.DeleteFile("/path/to/the/file");

// disconnect  
client.Disconnect();
于 2009-10-27T13:10:19.663 回答
0

您可以使用 OpenSSH 并发出 sftp 批处理命令。您在 c# 端所要做的就是使用正确的命令行启动 sftp 进程。

于 2009-07-24T18:22:26.263 回答
0

我一直在使用http://sshnet.codeplex.com/。它对我来说效果很好,并且正在积极开发/支持。

删除文件的代码很简单

public static void DownloadFile(SftpClient client, SftpFile remoteFileName)
{
   var localFileName = System.IO.Path.GetFileName(remoteFileName.Name );
   using (var file = File.OpenWrite(localFileName))
   {
       client.DownloadFile(remoteFileName.FullName , file);
       remoteFileName.Delete();
    }
}
于 2011-11-30T17:14:05.747 回答
0

使用对象 SshExec 执行 Linux 命令 rm。此命令删除文件。例子:

rm /dir1/dir2/file.txt

其他示例Tamir 执行命令

public static bool DeleteFile(string remotePath) 
{
    try
    {
        SshExec comando = new SshExec(Server, User);
        comando.Password = Password;

        comando.Connect();

        string paso = comando.RunCommand("rm " + remotePath);

        comando.Close();

        return true;
    }
    catch (Exception ex)
    {

        mErrorSFTP = ex.Message;
        return false;
    }  
}
于 2015-11-10T17:43:33.997 回答