//turn this into some kind of interface public GatherResults DownloadQtyFiles(IVendorDirectory dir) { var files = new List<File>(); using (var ftp = new FtpLib.FtpConnection(_config.QtyFileHost, _config.QtyFilePort, _config.QtyFileUsername, _config.QtyFilePassword)) { ftp.Open(); ftp.Login(); dir.EnsureExists(); var localFile = dir.GetNewRawFile(FileTypes.Qty); ftp.GetFile(_config.QtyFileName, localFile.Name.GetPath(), true); files.Add(localFile); ftp.Close(); } return new GatherResults { VendorHandle = dir.VendorHandle, Files = files }; }
//@"ftp://*****:*****@192.168.42.6/" //只能支持单个FTP站点 public bool InitHttpRoot(DataModel.VideoSupplierDeviceInfo item) { string strformat = string.IsNullOrEmpty(item.UserName) ? "{0}://{3}:{4}/{5}" : "{0}://{1}:{2}@{3}:{4}/{5}"; string urlroot = string.Format(strformat , (item.ProtocolType == DataModel.E_VDA_NET_STORE_DEV_PROTOCOL_TYPE.E_DEV_PROTOCOL_CONTYPE_FTP_FILE) ? "ftp" : "http" , item.UserName , item.Password , item.IP , item.Port , item.Rest); ftproot = urlroot.TrimEnd('/') + "/"; GetDirectoryList = GetFtpDirectoryList; GetFileList = GetFtpFileList; ClearRoot(); InitRoot(ftproot, ftproot); //string ftproot = @"ftp://*****:*****@192.168.42.6/"; m_ftpService = new FtpLib.FtpConnection(item.IP, (int)item.Port, item.UserName, item.Password); m_ftpService.Open(); try { m_ftpService.Login(); //m_ftpService.SetCurrentDirectory(textBoxPath.Text); SaveFtpInfo(); return(true); } catch (Exception ex) { DevComponents.DotNetBar.MessageBoxEx.Show("无法连接FTP服务器,请检查地址及用户名密码。 " + ex.Message, Framework.Environment.PROGRAM_NAME); return(false); } }
void DirSearch(string sDir, FtpLib.FtpConnection ftp, string currentDirectory, bool createWorldFolder = false, bool first = false) { try { ftp.SetCurrentDirectory(currentDirectory); if (createWorldFolder) { if (!ftp.DirectoryExists(owlWorldName)) { ftp.CreateDirectory(owlWorldName); } ftp.SetCurrentDirectory(owlWorldName); currentDirectory = owlWorldName; } foreach (string f in Directory.GetFiles(sDir)) { Uri uri = new Uri(f); string str = f.ToLower(); if (first) { if (str.Contains("channel1.txt") || str.Contains("channel2.txt") || str.Contains("channel3.txt") || str.Contains("channel4.txt") || str.Contains("channel5.txt")) { ftp.PutFile(f, System.IO.Path.GetFileName(uri.LocalPath)); } else { continue; } } else { if (!str.Contains("channel1.txt") && !str.Contains("channel2.txt") && !str.Contains("channel3.txt") && !str.Contains("channel4.txt") && !str.Contains("channel5.txt")) { ftp.PutFile(f, System.IO.Path.GetFileName(uri.LocalPath)); } } } foreach (string d in Directory.GetDirectories(sDir)) { ftp.SetCurrentDirectory(currentDirectory); string dirname = new DirectoryInfo(d).Name; if (!ftp.DirectoryExists(dirname)) { ftp.CreateDirectory(dirname); } string newCurrentDir = currentDirectory + "/" + dirname; DirSearch(d, ftp, newCurrentDir); } } catch (System.Exception e) { } }
void FTPLogin(string server, string username, string password, string uploadDir, bool upperChannel, bool first = true) { try { using (FtpLib.FtpConnection ftp = new FtpLib.FtpConnection(server, username, password)) { ftp.Open(); /* Open the FTP connection */ ftp.Login(); /* Login using previously provided credentials */ DirSearch(uploadDir, ftp, "/", upperChannel, first); ftp.Close(); } } catch { } }
/// <summary> /// Inicializa el Modulo FTP. /// </summary> /// <param name="obj"> /// Campos Obligatorios: \n /// FTPDireccionRemota (string) \n /// FTPUsuario (string) \n /// FTPPassword (string) \n /// FTPIntentos (int) \n /// </param> public void Init(dynamic obj) { if ((obj as IDictionary <string, object>).ContainsKey("FTP")) { _FTPDireccionRemota = obj.FTP.FTPDireccionRemota; _FTPUsuario = obj.FTP.FTPUsuario; _FTPPassword = obj.FTP.FTPPassword; _FTPIntentos = obj.FTP.FTPIntentos; } else { _FTPDireccionRemota = obj.FTPDireccionRemota; _FTPUsuario = obj.FTPUsuario; _FTPPassword = obj.FTPPassword; _FTPIntentos = obj.FTPIntentos; } clienteFTP = new FtpLib.FtpConnection(_FTPDireccionRemota, _FTPUsuario, _FTPPassword);//Cliente FTP }
/// <summary> /// Inicializa el Modulo FTP. /// </summary> /// <param name="obj"> /// Campos Obligatorios: \n /// FTPDireccionRemota (string) \n /// FTPUsuario (string) \n /// FTPPassword (string) \n /// FTPIntentos (int) \n /// </param> public void Init(dynamic obj) { _data = obj.FTP; //Guardo la sección que me interesa para este módulo clienteFTP = new FtpLib.FtpConnection(_data.FTPDireccionRemota, _data.FTPUsuario, _data.FTPPassword); //Cliente FTP }