Bất cứ ai cũng biết cách xóa tệp khỏi máy chủ SFTP bằng SharpSSH của Tamir Gal? Tôi đã có thể thực hiện các chức năng khác nhưng xóa. Cảm ơn trước.Làm cách nào để xóa tệp khỏi máy chủ SFTP lập trình bằng SharpSSH?
Trả lời
Để thực hiện việc này, bạn cần sửa đổi cụm SharpSSH để hiển thị chức năng bạn yêu cầu.
Lấy mã nguồn và mở $ \ SharpSSH-1.1.1.13.src \ SharpSSH \ Sftp.cs
Insert sau dòng mã trước khi kết thúc lớp:
public void Delete(string path)
{
SftpChannel.rm(path);
}
biên dịch lại và tham khảo DLL biên dịch lại trong dự án của bạn. Bây giờ bạn có thể xóa các tệp trên máy chủ SFTP.
Cảm ơn bạn! Vượt qua điều này và nó hoạt động hoàn hảo. Chỉ cần một mẹo nhanh cho bất kỳ ai muốn tự biên dịch bản thân này, sẽ hữu ích khi sử dụng lệnh sau xây dựng lệnh ILMerge để kết thúc với một assembly tiện dụng có tên SharpSSH.dll: 'ilmerge/target: library/out:" $ (TargetDir) SharpSSH.dll "/ v2" $ (TargetDir) Tamir.SharpSSH.dll "" $ (TargetDir) DiffieHellman.dll "" $ (TargetDir) Org.Mentalis.Security.dll "' – mattmc3
Giúp tôi. Cảm ơn bạn rất nhiều!! – Vbp
Bạn cũng có thể sử dụng lớp SshExec rồi thực hiện lệnh "rm" bằng phương pháp "RunCommand". Bằng cách này bạn sẽ không phải biên dịch lại và xây dựng một dll mới.
Cảm ơn! Điều này đã lưu tôi từ việc sửa đổi thư viện. –
Các SshExec lớp không làm việc cho tôi, nhưng một chút Reflection kỳ diệu làm việc:
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);
Sử dụng dll Tamir của tôi sẽ đề nghị xóa bằng cách sử dụng mã dưới đây. Bằng cách này, bạn không cần phải sửa đổi dll của Tamir, trong khi mã dưới đây có thể được viết trong lớp của bạn.
string fromFile = "https://stackoverflow.com/a/b/MyFile.txt"
SshExec se = new SshExec(host, username, password);
se.Connect(port);
se.RunCommand("rm " + fromFile);
Theo dõi lâu dài cho câu hỏi này. Tôi đã thêm điều này trong một vài cập nhật mà tôi đã làm tại https://bitbucket.org/mattgwagner/sharpssh để tránh tự biên dịch lại thư viện. – MattGWagner