Rinominare, copiare e poi rinominare nuovamente un File

di Anonimizzato31082 il
4 risposte
Buongiorno a tutti,

Non sono molto pratico di VBA Access e purtroppo devo aggiustare il seguente codice non creato da me:
Public Function CopiaFile(ByVal Origine As String, ByVal Destinazione As String, Sovrascrivere As Boolean) As Boolean
'Copia una file dalla posizione Origine alla posizione Destinazione
'Sovrascrive: se Sovrascivere = true

On Error GoTo Error_Handle_CopiaFile

Dim xFileSystem As Object
Dim ParentFolder As String

CopiaFile = False
Set xFileSystem = CreateObject("Scripting.FileSystemObject")
ParentFolder = Left(Destinazione, InStrRev(Destinazione, "\") - 1)

If xFileSystem.FileExists(Origine) Then
    If Sovrascrivere Then
        If Not (xFileSystem.FolderExists(ParentFolder)) Then CreaPercorso (ParentFolder)
        
            xFileSystem.Copyfile Origine, Destinazione, Sovrascrivere
            CopiaFile = True
        
    Else
        If Not (xFileSystem.FileExists(Destinazione)) Then
            If Not (xFileSystem.FolderExists(ParentFolder)) Then CreaPercorso (ParentFolder)
        
            xFileSystem.Copyfile Origine, Destinazione, Sovrascrivere
            CopiaFile = True
            
        Else
            MsgBox GetMessage(3, Destinazione), vbExclamation, "Attenzione"
        End If
    End If
Else
    MsgBox GetMessage(2, Origine), vbCritical, "Attenzione!"
End If
    
   
Exit_CopiaFile:
    Exit Function

Error_Handle_CopiaFile:
    MsgBox Err.Description, vbCritical, "Attenzione!"
    Resume Exit_CopiaFile

End Function
In particolare, dopo la parte "If Socrescrivere Then" devo riuscire a rinominare il file aggiungendo l'estensione ".bck" all'attuale nome del file che il form sta gestendo, copiarlo (azione che già il codice compie) e successivamente rinominare il nome del file facendolo tornare al nome originale (senza l'estensione ".bck").

Purtroppo non ho la possibilità di testare il codice se non sul pc del cliente, riuscite a darmi una mano per favore?

Grazie.

4 Risposte

  • Rinominare, copiare e rinominare? Non credo di aver capito il senso
  • oregon ha scritto:


    Rinominare, copiare e rinominare? Non credo di aver capito il senso
    Purtroppo è una anomalia dei file che tratta il cliente ".gear" che si genera su windows, l'unico modo di aggirarla è appunto quello di rinominare il file, copiarlo e poi rinominarlo secondo il nome corretto.
  • Ma se fai tutto in un solo colpo...?
    
    Sub FileCopy(Source As String, Destination As String)
        Membro di VBA.FileSystem
  • Quello che dici non ha senso.

    Come ti ha suggerito Alex, prendi il file sorgente e lo copi col nome ed estensione finale
Devi accedere o registrarti per scrivere nel forum
4 risposte