public bool StartSFtpServer() { if (_sftpserver != null) { _sftpserver.Dispose(); _sftpserver = null; } try { _sftpserver = new Sftpserver(); _sftpserver.Config("Charset=UTF8"); _sftpserver.OnConnected += new Sftpserver.OnConnectedHandler(_sftpserver_OnConnected); _sftpserver.OnConnectionRequest += new Sftpserver.OnConnectionRequestHandler(_sftpserver_OnConnectionRequest); _sftpserver.OnDirList += new Sftpserver.OnDirListHandler(_sftpserver_OnDirList); _sftpserver.OnDisconnected += new Sftpserver.OnDisconnectedHandler(_sftpserver_OnDisconnected); _sftpserver.OnError += new Sftpserver.OnErrorHandler(_sftpserver_OnError); _sftpserver.OnFileClose += new Sftpserver.OnFileCloseHandler(_sftpserver_OnFileClose); _sftpserver.OnFileOpen += new Sftpserver.OnFileOpenHandler(_sftpserver_OnFileOpen); _sftpserver.OnDirCreate += new Sftpserver.OnDirCreateHandler(_sftpserver_OnDirCreate); _sftpserver.OnDirRemove += new Sftpserver.OnDirRemoveHandler(_sftpserver_OnDirRemove); _sftpserver.OnSetAttributes += new Sftpserver.OnSetAttributesHandler(_sftpserver_OnSetAttributes); _sftpserver.OnFileRead += new Sftpserver.OnFileReadHandler(_sftpserver_OnFileRead); _sftpserver.OnFileRemove += new Sftpserver.OnFileRemoveHandler(_sftpserver_OnFileRemove); _sftpserver.OnFileRename += new Sftpserver.OnFileRenameHandler(_sftpserver_OnFileRename); _sftpserver.OnFileWrite += new Sftpserver.OnFileWriteHandler(_sftpserver_OnFileWrite); _sftpserver.OnGetAttributes += new Sftpserver.OnGetAttributesHandler(_sftpserver_OnGetAttributes); _sftpserver.OnResolvePath += new Sftpserver.OnResolvePathHandler(_sftpserver_OnResolvePath); _sftpserver.OnSSHStatus += new Sftpserver.OnSSHStatusHandler(_sftpserver_OnSSHStatus); _sftpserver.OnSSHUserAuthRequest += new Sftpserver.OnSSHUserAuthRequestHandler(_sftpserver_OnSSHUserAuthRequest); Parameters pars = Parameters.Instance(); _sftpserver.SSHCert = new Certificate(CertStoreTypes.cstPFXFile , pars.KeyFilePath , pars.Password , pars.Subject); _sftpserver.LocalPort = pars.SftpParam.FTP_Port; _sftpserver.RootDirectory = pars.SftpParam.RootDir; _sftpserver.Listening = true; LogHelper.InfoLog(string.Format("start success. port:{0},RootDir:{1}", pars.SftpParam.FTP_Port, pars.SftpParam.RootDir)); return(true); } catch (System.Exception ex) { LogHelper.ErrorLog(ex); return(false); } }
public void StopSFtpServer() { try { if (_sftpserver != null) { if (_sftpserver.Listening) { _sftpserver.Listening = false; _sftpserver.Shutdown(); } _sftpserver.Dispose(); _sftpserver = null; } } catch (System.Exception ex) { LogHelper.ErrorLog(ex); } }