1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
| Function iCopieFichier(FichierSource As String, FichierDestination As String, ModeCopie As Integer, Effacer As Boolean, sMessage As String) As Integer
Dim source As Integer 'handle fichier source
Dim Dest As Integer 'handle fichier destination
Dim iErreur As Integer 'code erreur retour
Dim sTrace As String 'trace intermediaire
'Dim sMessage As String 'message d'erreur
On Error Resume Next
Err = 0
source = FreeFile
sTrace = "open S"
Open FichierSource For Input As #source
'le fichier source existe
If Err = 0 Then
Call vAjouteLogBS("", "icopieFichier : Ligne 35 " & FichierDestination & " " & Err, "SAP", True)
Dest = FreeFile
sTrace = "open D"
Open FichierDestination For Input As #Dest
'fichier destination trouvé
If Err = 0 Then
Call vAjouteLogBS("", "icopieFichier : Ligne 42 " & FichierDestination & " " & Err, "SAP", True)
sTrace = "close D"
Close #Dest
'on efface le fichier de destination
If ModeCopie = KILL_PERMIS Then
Call vAjouteLogBS("", "icopieFichier : Ligne 47 " & FichierDestination & " " & Err, "SAP", True)
sTrace = "kill D"
Kill FichierDestination
If Err <> 0 Then
Call vAjouteLogBS("", "icopieFichier : Ligne 51 " & FichierDestination & " " & Err, "SAP", True)
iErreur = Err
End If
Else
Call vAjouteLogBS("", "icopieFichier : Ligne 55 " & FichierDestination & " " & Err, "SAP", True)
iErreur = COPIE_AJOURNEE
End If
Else 'fichier destination pas trouvé
Call vAjouteLogBS("", "icopieFichier : Ligne 59 " & FichierDestination & " " & Err, "SAP", True)
sTrace = "close D"
Close #Dest
iErreur = 0
End If
Else
iErreur = 0
GoTo fin
End If
sTrace = "close S"
Close #source
Err = 0
'sortie de la fonction si erreur
If iErreur = 0 Then
Call vAjouteLogBS("", "icopieFichier : Ligne 75 " & FichierDestination, "SAP", True)
Err = 0
sTrace = "fcopie"
FileCopy FichierSource, FichierDestination
If Err = 0 Then
Call vAjouteLogBS("", "icopieFichier : Ligne 80 " & FichierDestination, "SAP", True)
'on detruit le fichier source
sTrace = "kill S"
If Effacer = True Then
Kill FichierSource
Call vAjouteLogBS("", "icopieFichier : Kill fichier : " & FichierSource, "SAP", True)
End If
'Name FichierSource As FichierDestination
'If Err <> 0 Then iErreur = Err
Else
Call vAjouteLogBS("", "icopieFichier : Ligne 90 " & FichierDestination, "SAP", True)
iErreur = Err
iErreur = 90
End If
End If
'modif em du 26/05/98 pb aléatoire de copie
If iErreur <> COPIE_AJOURNEE And iErreur <> 0 Then
sMessage = "PB COPIE FICHIER " & Format$(iErreur) & " " & FichierSource & "/" & Format$(source) & " " & FichierDestination & "/" & Format$(Dest) & " : " & sTrace
Call vAjouteLogBS("", "icopieFichier : Ligne 99 " & FichierDestination, "SAP", True)
'Call vTraceDefautPC(sMessage, USER_LEVEL)
End If
fin:
Err = 0
'on retourne le code d'erreur
iCopieFichier = iErreur
End Function |
Partager