是否有允许我通过SFTP删除文件的C#开源组件?
答案 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
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;
}
}