通过SFTP删除文件

时间:2009-07-22 18:40:45

标签: c# sftp

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

5 个答案:

答案 0 :(得分:1)

尝试SharpSSH

答案 1 :(得分: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();

答案 2 :(得分:0)

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

答案 3 :(得分: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();
    }
}

答案 4 :(得分:0)

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

rm /dir1/dir2/file.txt

其他示例Tamir Execute Command

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;
    }  
}