/// <summary> /// Elimina archivos del ftp /// tipoRuta: /// 0 = Sobres / /// 1 = Comprobantes / /// 2 = Bandeja Entrada / /// 3 = Respuestas / /// 4 = Reporte Diario / /// 5 = ContingenciaSobres / /// 6 = ContingenciaComprobantes / /// 7 = ContingenciaReportesDiarios / /// 8 = CFEs / /// 9 = CertificadosAnulados / /// 10 = Contingencia Sobres Dgi /// </summary> /// <param name="tipoRuta"></param> public void EliminarFTP(int tipoRuta, string nombreArchivo) { string servidorFTP = "", usuarioFTP = "", claveFTP = "", rutaFTP = ""; ManteUdoFTP udoFTP = new ManteUdoFTP(); try { ConfigFTP config = udoFTP.Consultar(); if (config != null) { servidorFTP = config.Servidor; usuarioFTP = config.Usuario; claveFTP = config.Clave; //Se valida el tipo de extension(Se manejan rutas distintas para xml y pdf) rutaFTP = ObtenerTipoRuta(tipoRuta, config); rutaFTP = Mensaje.dirFtp + servidorFTP + rutaFTP; // Get the object used to communicate with the server. FtpWebRequest request = (FtpWebRequest)WebRequest.Create(rutaFTP + nombreArchivo); request.Method = WebRequestMethods.Ftp.DeleteFile; // This example assumes the FTP site uses anonymous logon. request.Credentials = new NetworkCredential(usuarioFTP, claveFTP); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); } } catch (Exception) { } }
/// <summary> /// Consulta los datos de la configuracion /// </summary> private void Consultar() { //Crea una nueva instanacia al mantenimiento de configuracion de FTP ManteUdoFTP manteUdoFtp = new ManteUdoFTP(); //Obtiene un nuevo objeto configuracion FTP ConfigFTP configFtp = manteUdoFtp.Consultar(); //Validar que se haya obtenido un registro if (configFtp != null) { //Cargar los data sourcers udsTxtServidor.Value = configFtp.Servidor; udsTxtComp.Value = configFtp.RepoComp; udsTxtSob.Value = configFtp.RepoSob; udsTxtBan.Value = configFtp.RepoBandejaEntrada; udsTxtUsuario.Value = configFtp.Usuario; udsTxtClave.Value = configFtp.Clave; udsTxtResp.Value = configFtp.RepoResp; udsTxtRepDi.Value = configFtp.RepoRepDi; udsTxtRepWsE.Value = configFtp.RepoWebServiceEnvio; udsTxtRepWsC.Value = configFtp.RepoWebServiceConsulta; udsTxtRepConSob.Value = configFtp.RepoContingenciaSobres; udsTxtRepConCom.Value = configFtp.RepoContingenciaComprobantes; udsTxtRepConReDi.Value = configFtp.RepoContingenciaReportesDiarios; udsTxtRepCfe.Value = configFtp.RepoCFEs; udsTxtRepCerAnu.Value = configFtp.RepoCertificadosAnulados; udsTxtRepConSobDgi.Value = configFtp.RepoContingenciaSobreDgi; udsTxtRutDgi.Value = configFtp.RutDgi; udschkFileDelete.Value = configFtp.FileDelete; } else { if (ManteUdoFTP.errorManteFTP) { SAPbouiCOM.Framework.Application.SBO_Application.MessageBox(Mensaje.errTablaConfigFtp); ManteUdoFTP.errorManteFTP = false; } } }
/// <summary> /// Metodo para cargar archivos en un servidor FTP /// tipoRuta: /// 0 = Sobres / /// 1 = Comprobantes / /// 2 = Bandeja Entrada / /// 3 = Respuestas / /// 4 = Reporte Diario / /// 5 = ContingenciaSobres / /// 6 = ContingenciaComprobantes / /// 7 = ContingenciaReportesDiarios / /// 8 = CFEs / /// 9 = CertificadosAnulados/ /// 10 = ContingenciaSobresDgi /// </summary> /// <param name="extension"></param> /// <returns></returns> public bool CargarArchivos(string nombreArchivo, string rutaArchivo, int tipoRuta) { string servidorFTP = "", usuarioFTP = "", claveFTP = "", rutaFTP = ""; bool resultado = false; ManteUdoFTP udoFTP = new ManteUdoFTP(); ConfigFTP config = udoFTP.Consultar(); if (config != null) { servidorFTP = config.Servidor; usuarioFTP = config.Usuario; claveFTP = config.Clave; rutaFTP = ObtenerTipoRuta(tipoRuta, config); Boolean BorroFile; //Valida que la ruta no este vacia if (!rutaFTP.Equals("")) { try { rutaFTP = Mensaje.dirFtp + servidorFTP + rutaFTP + nombreArchivo; //Se conecta al servidor ftp FtpWebRequest request = (FtpWebRequest)WebRequest.Create(rutaFTP); //Se define el metodo a ejecutar = cargaArchivos request.Method = WebRequestMethods.Ftp.UploadFile; //Se inicia sesion en el servidor request.Credentials = new NetworkCredential(usuarioFTP, claveFTP); rutaLocal = rutaArchivo; //Se obtiene el contenido del archivo byte[] contenido = File.ReadAllBytes(rutaLocal); request.ContentLength = contenido.Length; //Se escribe el contenido en un stream y es enviado al servidor ftp Stream requestStream = request.GetRequestStream(); requestStream.Write(contenido, 0, contenido.Length); requestStream.Close(); //Se obtiene el formulario activo para mantener la conexion con DIServer Form activo = SAPbouiCOM.Framework.Application.SBO_Application.Forms.ActiveForm; //Se libera el objeto de memoria System.Runtime.InteropServices.Marshal.ReleaseComObject(activo); GC.Collect(); FtpWebResponse response = (FtpWebResponse)request.GetResponse(); Console.WriteLine(response.StatusDescription); response.Close(); BorroFile = BorroFiles(); if (BorroFile != true) { //Se borra el archivo subido File.Delete(rutaLocal); } resultado = true; } catch (Exception) { } } } return(resultado); }
/// <summary> /// Metodo para descargar archivos del servidor ftp /// tipoRuta: /// 0 = Sobres / /// 1 = Comprobantes / /// 2 = Bandeja Entrada / /// 3 = Respuestas / /// 4 = Reporte Diario / /// 5 = ContingenciaSobres / /// 6 = ContingenciaComprobantes / /// 7 = ContingenciaReportesDiarios / /// 8 = CFEs / /// 9 = CertificadosAnulados / /// 10 = Contingencia Sobres Dgi /// </summary> /// <param name="rutaFTP"></param> /// <param name="nombreArchivo"></param> /// <param name="pRutaLocal"></param> /// <returns></returns> public bool descargarArchivos(string nombreArchivo, string pRutaLocal, int tipoRuta) { string servidorFTP = "", usuarioFTP = "", claveFTP = "", rutaFTP = ""; bool resultado = false; ManteUdoFTP udoFTP = new ManteUdoFTP(); ConfigFTP config = udoFTP.Consultar(); if (config != null) { servidorFTP = config.Servidor; usuarioFTP = config.Usuario; claveFTP = config.Clave; //Se valida el tipo de extension(Se manejan rutas distintas para xml y pdf) rutaFTP = ObtenerTipoRuta(tipoRuta, config); //Valida que la ruta no este vacia if (!rutaFTP.Equals("")) { try { rutaFTP = Mensaje.dirFtp + servidorFTP + rutaFTP + nombreArchivo; FtpWebRequest request = (FtpWebRequest)WebRequest.Create(rutaFTP); //Se define el metodo a ejecutar = cargaArchivos request.Method = WebRequestMethods.Ftp.DownloadFile; ////Se inicia sesion en el servidor request.Credentials = new NetworkCredential(usuarioFTP, claveFTP); request.UseBinary = true; ////request.UsePassive = false; FtpWebResponse response = (FtpWebResponse)request.GetResponse(); ////Se descarga el archivo Stream responseStream = response.GetResponseStream(); FileStream fileStream = new FileStream(pRutaLocal + nombreArchivo, FileMode.Create); byte[] buffer = new byte[2048]; int count = responseStream.Read(buffer, 0, buffer.Length); while (count > 0) { fileStream.Write(buffer, 0, count); count = responseStream.Read(buffer, 0, buffer.Length); } fileStream.Close(); response.Close(); resultado = true; } catch (Exception) { //SAPbouiCOM.Framework.Application.SBO_Application.MessageBox("E/DEsc/FTP: " + ex.ToString()); } } } return(resultado); }