' 26/06/2026 Se controla todas las excepciones con tsl5.tsExcepcion y se añade HoraControl

This commit is contained in:
2026-06-26 09:09:00 +02:00
parent 35c2305902
commit efc619ebcd
4 changed files with 55 additions and 40 deletions

View File

@@ -31,13 +31,12 @@ Imports System.Runtime.InteropServices
' mediante el asterisco ('*'), como se muestra a continuación:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.0.0.1")>
<Assembly: AssemblyFileVersion("2.0.0.1")>
<Assembly: AssemblyVersion("3.0.0.0")>
<Assembly: AssemblyFileVersion("3.0.0.0")>
' Cambios en la versión 2.0.0.1
'
' 26/02/2025 Se elimina
' Cambios en la versión 3.0.0.0
' 26/06/2026 Se controla todas las excepciones con tsl5.tsExcepcion y se añade HoraControl
' Cambios en la versión 2.0.0.0

View File

@@ -2,7 +2,7 @@
<package >
<metadata>
<id>tsFluentFTP</id>
<version>1.0.0</version>
<version>3.0.0</version>
<authors>Tecnosis</authors>
<owners>Tecnosis</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>

78
ftp.vb
View File

@@ -30,8 +30,9 @@ Public Class ftp
If ftp.IsConnected = False Then ftp.Connect()
Return ftp.GetModifiedTime(Fichero)
ftp.Disconnect()
HoraControl = Now
Catch EX As Exception
Throw
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
Return Nothing
End Function
@@ -62,8 +63,9 @@ Public Class ftp
If ftp.IsConnected = False Then ftp.Connect()
If Not ftp.DownloadStream(st, Fichero, , Progreso) Then Throw New Exception("No se ha podido descargar el fichero")
ftp.Disconnect()
HoraControl = Now
Catch EX As Exception
Throw New Exception(EX.Message, EX)
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Sub
@@ -133,10 +135,12 @@ Public Class ftp
Else
Await ftp.Disconnect
End If
HoraControl = Now
Return t
' End Using
Catch EX As Exception
Throw New Exception(EX.Message, EX)
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Function
@@ -179,10 +183,11 @@ Public Class ftp
Else
Await ftp.Disconnect
End If
HoraControl = Now
Return t
'End Using
Catch EX As Exception
Throw New Exception(EX.Message, EX)
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Function
@@ -215,8 +220,9 @@ Public Class ftp
If ftp.DownloadFile(FicheroLocal, FicheroRemoto, FtpLocalExists.Overwrite, Verificacion, Progreso) = FtpStatus.Failed Then Throw New Exception("No se ha podido descargar el fichero " & FicheroRemoto & " en " & FicheroLocal)
ftp.Disconnect()
HoraControl = Now
Catch EX As Exception
Throw New Exception(EX.Message, EX)
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Sub
Public Shared Async Function EnviaFicheroAsync(FicheroOrigen As String, FicheroDestino As String, ServidorFTP As ServidorFTP, Optional Progreso As IProgress(Of FtpProgress) = Nothing, Optional Verificacion As FtpVerify = FtpVerify.None, Optional ct As Threading.CancellationTokenSource = Nothing) As Tasks.Task(Of FtpStatus)
@@ -258,9 +264,10 @@ Public Class ftp
End If
If t = FtpStatus.Failed Then Throw New Exception("Error enviado fichero " & FicheroOrigen & " a " & FicheroDestino)
Return t
HoraControl = Now
' End Using
Catch EX As Exception
Throw New Exception(EX.Message, EX)
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Function
@@ -298,10 +305,10 @@ Public Class ftp
Await ftp.Disconnect()
If t = FtpStatus.Failed Then Throw New Exception("Error renombrando fichero " & FicheroOrigen & " a " & FicheroDestino)
Return t
HoraControl = Now
' End Using
Catch EX As Exception
MsgBox(EX.Message)
Throw New PKICOAS.TSException(EX.Message, EX, "FTP_ERROR.DESCONOCIDO", )
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Function
@@ -334,8 +341,9 @@ Public Class ftp
Dim t = ftp.UploadFile(FicheroOrigen, FicheroDestino, FtpRemoteExists.Overwrite, False, Verificacion, Progreso)
If t = FtpStatus.Failed Then Throw New Exception("Error enviando fichero " & FicheroOrigen & " a " & FicheroDestino & " ")
ftp.Disconnect()
HoraControl = Now
Catch EX As Exception
Throw New Exception(EX.Message, EX)
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Sub
@@ -367,8 +375,9 @@ Public Class ftp
Dim t = ftp.UploadBytes(FicheroOrigen, FicheroDestino, FtpRemoteExists.Overwrite, False, Progreso)
If t = FtpStatus.Failed Then Throw New Exception("Error enviando fichero ")
ftp.Disconnect()
HoraControl = Now
Catch EX As Exception
Throw
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Sub
@@ -403,8 +412,9 @@ Public Class ftp
ftp.CreateDirectory(Directorio, True)
End If
ftp.Disconnect()
HoraControl = Now
Catch EX As Exception
Throw
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Sub
@@ -434,8 +444,9 @@ Public Class ftp
If ftp.IsConnected = False Then ftp.Connect()
ftp.DeleteFile(Fichero)
ftp.Disconnect()
HoraControl = Now
Catch EX As Exception
Throw
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Sub
@@ -466,8 +477,9 @@ Public Class ftp
If Not ftp.Capabilities.Contains(FtpCapability.MDTM) Then ftp.Capabilities.Add(FtpCapability.MDTM)
Return ftp.FileExists(Fichero)
ftp.Disconnect()
HoraControl = Now
Catch EX As Exception
Throw
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Function
@@ -500,10 +512,9 @@ Public Class ftp
If Not ftp.Capabilities.Contains(FtpCapability.MDTM) Then ftp.Capabilities.Add(FtpCapability.MDTM)
ftp.MoveFile(FicheroOrigen, FicheroDestino, FtpRemoteExists.Overwrite)
ftp.Disconnect()
Catch EX As PKICOAS.TSException
Throw EX
HoraControl = Now
Catch EX As Exception
Throw New PKICOAS.TSException(EX.Message, EX, "FTP_ERROR.DESCONOCIDO", )
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Sub
'Public Shared Sub MueveFicheros(PatronFicheroOrigen As String, DirectorioDestino As String, ServidorFTP As ServidorFTP)
@@ -528,27 +539,32 @@ Public Class ftp
' For Each F In lf
' ftp.Rename(F.FullName, DirectorioDestino & F.Name)
' Next
' Catch EX As PKICOAS.TSException
' Catch EX As tsl5.TsExcepcion
' Throw EX
' Catch EX As Exception
' Throw New PKICOAS.TSException(EX.Message, EX, "FTP_ERROR.DESCONOCIDO", )
' Throw New tsl5.TsExcepcion(EX.Message, EX, "FTP_ERROR.DESCONOCIDO", )
' End Try
'End Sub
Public Shared Function ObtieneListaFicheros(Ruta As String, ServidorFTP As ServidorFTP) As FtpListItem()
Dim ftp As New FtpClient(ServidorFTP.Servidor, ServidorFTP.Usuario, ServidorFTP.Contraseña, ServidorFTP.Puerto)
If ServidorFTP.Pasivo Then
ftp.Config.DataConnectionType = FtpDataConnectionType.PASV
Else
ftp.Config.DataConnectionType = FtpDataConnectionType.AutoActive
End If
ftp.Config.RetryAttempts = ServidorFTP.Reintentos
ftp.Config.ConnectTimeout = ServidorFTP.Timeout
' ftp.Config.ListingCulture = Globalization.CultureInfo.CurrentCulture
If ftp.IsConnected = False Then ftp.Connect()
Dim lf = ftp.GetListing(Ruta)
ftp.Disconnect()
Return lf
Try
Dim ftp As New FtpClient(ServidorFTP.Servidor, ServidorFTP.Usuario, ServidorFTP.Contraseña, ServidorFTP.Puerto)
If ServidorFTP.Pasivo Then
ftp.Config.DataConnectionType = FtpDataConnectionType.PASV
Else
ftp.Config.DataConnectionType = FtpDataConnectionType.AutoActive
End If
ftp.Config.RetryAttempts = ServidorFTP.Reintentos
ftp.Config.ConnectTimeout = ServidorFTP.Timeout
' ftp.Config.ListingCulture = Globalization.CultureInfo.CurrentCulture
If ftp.IsConnected = False Then ftp.Connect()
Dim lf = ftp.GetListing(Ruta)
ftp.Disconnect()
HoraControl = Now
Return lf
Catch EX As Exception
Throw New tsl5.tsExcepcion(EX.Message, EX, "FTP_ERROR")
End Try
End Function
Private Shared Sub ValidarCertificado(control As FtpClient, e As FtpSslValidationEventArgs)

View File

@@ -50,9 +50,6 @@
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="PKICOAS">
<HintPath>..\..\Controles\Binarios\PKICOAS\PKICOAS.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
@@ -119,6 +116,9 @@
<PackageReference Include="FluentFTP">
<Version>53.0.2</Version>
</PackageReference>
<PackageReference Include="tsl5">
<Version>3.0.6</Version>
</PackageReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.