Мне нужно изменить старый сценарий C # (созданный еще в 2010 году в C # Express), чтобы использовать SFTP вместо FTP. Потребовалось некоторое время, чтобы вытащить этот скрипт из старого репозитория и загрузить версию C # 2010 Express, чтобы открыть скрипт! Но мне наконец-то это удалось. Я никогда не кодировал на C #, поэтому будьте добры. У нас есть несколько удаленных компьютеров, которые должны передавать файлы на сервер и с сервера в их сети. Этот скрипт представляет собой DLL-файл, на который ссылаются некоторые другие программы в этих системах, поэтому мне нужно будет изменить вызовы этого DLL-файла в этих скриптах. Я исследовал использование SFTP в C #, и из того, что я видел, я подумал, что лучше всего установить Renci.SshNet, чтобы он был установлен в качестве ссылки в проекте. Я хочу изменить приведенную ниже функцию, чтобы использовать SFTP вместо FTP, но я не совсем уверен, с чего начать -
public TimeSpan FTPTo(string strFTPServer, string strLocalFileandPath, string strFTPFileandPath, string strFTPUser, string strFTPPassword)
{
try
{
DateTime dtStart = DateTime.Now;
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(strFTPServer + "/" + strFTPFileandPath);
ftp.Proxy = null;
ftp.Credentials = new NetworkCredential(strFTPUser, strFTPPassword);
//userid and password for the ftp server to given
ftp.KeepAlive = true;
ftp.UseBinary = true;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
FileStream fs = File.OpenRead(strLocalFileandPath);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpstream = ftp.GetRequestStream();
ftpstream.Write(buffer, 0, buffer.Length);
ftpstream.Close();
return DateTime.Now - dtStart;
}
catch (Exception ex1)
{
throw ex1;
}
}
Буду признателен за любые предложения / помощь.