Ktoś wie, jak usunąć plik z serwera SFTP przy użyciu SharpSSH Tamir Gal? Udało mi się wykonać inną funkcję, ale usunięcie. Z góry dziękuję.Jak usunąć plik z serwera SFTP programistycznie za pomocą SharpSSH?
Odpowiedz
W tym celu należy zmodyfikować zestaw SharpSSH, aby pokazać wymaganą funkcjonalność.
uzyskać kod źródłowy i otwarte $ \ SharpSSH-1.1.1.13.src \ SharpSSH \ Sftp.cs
Włóż następujących linii kodu przed końcem klasy:
public void Delete(string path)
{
SftpChannel.rm(path);
}
rekompilacji i odniesienie do zrekompilowanej biblioteki DLL w twoim projekcie. Teraz będziesz mógł usuwać pliki na serwerze SFTP.
Dziękujemy! Natknąłem się na to i działa idealnie. Kolejna szybka wskazówka dla każdego, kto sam chce to skompilować, warto użyć następującej po komendzie ILMerge polecenia, aby zakończyć z jednym poręcznym zbiorem o nazwie SharpSSH.dll: 'ilmerge/target: library/out:" $ (TargetDir) SharpSSH.dll "/ v2" $ (TargetDir) Tamir.SharpSSH.dll "" $ (TargetDir) DiffieHellman.dll "" $ (TargetDir) Org.Mentalis.Security.dll "' – mattmc3
Pomógł mi też. Dziękuję bardzo!! – Vbp
Cóż można również użyć SshExec klasę, a następnie wykonać polecenie „rm” używając „RunCommand” metody. W ten sposób nie będziesz musiał przekompilować i zbudować nowej biblioteki DLL.
Dzięki! To uratowało mnie przed modyfikacją biblioteki. –
klasie SshExec nie dla mnie, ale trochę Odbicie magia pracował:
var prop = sftp.GetType().GetProperty("SftpChannel", BindingFlags.NonPublic | BindingFlags.Instance);
var methodInfo = prop.GetGetMethod(true);
var sftpChannel = methodInfo.Invoke(sftp, null);
((ChannelSftp) sftpChannel).rm(ftpPath);
Korzystanie dll Tamir za Proponuję usunąć za pomocą poniższego kodu. W ten sposób nie trzeba modyfikować biblioteki dll Tamir, podczas gdy poniższy kod można zapisać w klasie.
string fromFile = "https://stackoverflow.com/a/b/MyFile.txt"
SshExec se = new SshExec(host, username, password);
se.Connect(port);
se.RunCommand("rm " + fromFile);
Długo spóźniona kontynuacja tego pytania. Dodałem to w kilku aktualizacjach, które zrobiłem na https://bitbucket.org/mattgwagner/sharpssh, aby uniknąć ponownego kompilowania biblioteki. – MattGWagner