Visualizzazione dei risultati da 1 a 10 su 10

Discussione: VB6 - Backup

  1. #1
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    VB6 - Backup

    Prima di continuare nella stesura del codice, vorrei un Vs. consiglio.
    E' opportuno inserire nel programma una routine che provveda al backup dei files elaborati ?
    Se sì, dovrei usare CopyFile, ma prima dovrei creare le cartelle nelle quali copiare i predetti files. Mi potreste indicare il comando?
    O forse mi conviene utilizzare CopyFolder, in questo caso viene copiata la cartella con i files contenuti o solo la cartella?
    Grazie per le risposte.
    LM

  2. #2
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    OK ho risolto nel seguente modo, a chi dovesse interessare, copia una cartella contenente altre cartelle di file, in una directory indicata dall'utente :
    codice:
    Public Sub Backup()
        Dim MessageDir, TitleDir, DefaultDir, ValoreDir     'Variabili di InputBox
        Dim intRis As Integer
        Dim fso As Variant
        
        intRis = MsgBox("Si è deciso di fare il backup dei file contenuti nella cartella Dati." & vbCr & "" _
         & "Eseguire ?", vbYesNoCancel + vbQuestion, "Applicazioni Aziendali - Fattibilità economico finanziaria")
        
        If intRis = vbYes Then
            Set fso = CreateObject("Scripting.FileSystemObject")
            'Imposta il titolo:
            TitleDir = "Applicazioni Aziendali - Fattibilità economico finanziaria"
            'Imposta il messaggio:
            MessageDir = "Digitare la directory, ed il percorso, per il backup:" & vbCr & "" _
            & "( ad esempio:  D:\Elaborazioni\ )."
            'Imposta il valore predefinito:
            DefaultDir = "D:\Elaborazioni\"
            'Visualizza il messaggio, il titolo e il valore predefinito:
            ValoreDir = InputBox(MessageDir, TitleDir, DefaultDir)
            'L'operazione è stata annullata:
            If Len(ValoreDir) = 0 Then
                MsgBox "L'operazione è stata Annullata.", vbInformation, "Applicazioni Aziendali - Fattibilità economico finanziaria"
                Exit Sub
            End If
            
            'Copia la cartella Dati nella Directory in base a quanto inserito in ValoreDir:
            fso.CopyFolder "D:\Elaborazioni\FEF11\Dati", "ValoreDir"
            Set fso = Nothing
            MsgBox "I dati sono stati copiati con successo nella directory  " & ValoreDir, vbInformation, "Applicazioni Aziendali - Fattibilità economico finanziaria"
            Exit Sub
        End If
        
        If intRis = vbNo Then
            MsgBox "L'operazione è stata Annullata.", vbInformation, "Applicazioni Aziendali - Fattibilità economico finanziaria"
            Exit Sub
        End If
        If intRis = vbCancel Then
            MsgBox "L'operazione è stata Annullata.", vbInformation, "Applicazioni Aziendali - Fattibilità economico finanziaria"
            Exit Sub
        End If
    End Sub
    LM

  3. #3
    Ciao LMondi.
    Se ti interessa, posso indicarti come procedo ad effettuare il backup, per esempio di un file (in genere un database), attraverso Winzip.
    Io effettuo in genere una copia di backup sia su di un floppy che sul disco fisso.

    Fammi sapere.

    AUGURI!
    Giulio C. - Roma

  4. #4
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Giulio grazie per l'interessamento.
    Sì mi sarebbe molto utile, dato che il programma dovrebbe fare il Backup di circa 20 MB (guida escusa che peraltro devo ancora iniziare) tra BD e files.
    Quindi se posti il codice sarà ben accetto.
    Ciao e Auguri anche a te.
    PS. il codice sopra esposto l'ho affinato, ora vorrei inserire una ProgressBar, ma vediamo, se vi interessa lo posto.
    Ancora auguri.
    LM

  5. #5
    Originariamente inviato da LMondi
    Giulio grazie per l'interessamento.
    Sì mi sarebbe molto utile, dato che il programma dovrebbe fare il Backup di circa 20 MB (guida escusa che peraltro devo ancora iniziare) tra BD e files.
    Quindi se posti il codice sarà ben accetto.
    Ciao e Auguri anche a te.
    PS. il codice sopra esposto l'ho affinato, ora vorrei inserire una ProgressBar, ma vediamo, se vi interessa lo posto.
    Ancora auguri.
    Ciao di nuovo LMondi. Grazie per la tua risposta.
    Ti posto dunque il codice della routine che io uso per effettuare il backup di un file direttamente da VB utilizzando Winzip:

    codice:
    Public Sub Backup()  ' Funzione di backup del database mediante Winzip
       cConferma = MsgBox("Procedura di backup del database con Winzip." & Chr(10) & Chr(10) & _
       "Utilizzando questa procedura è possibile procedere al backup" & Chr(10) & _
       "del file <XXX.mdb>." & Chr(10) & _
       "Confermando l'operazione verrà avviato Winzip che provvederà" & Chr(10) & _
       "automaticamente a comprimere il database per il salvataggio." & Chr(10) & _
       "Inserire pertanto uno o più dischi floppy nel drive <A>." & Chr(10) & Chr(10) & _
       "Una copia sarà creata anche sulla directory dell'applicazione." & Chr(10) & _
       "Al termine dell'operazione rimuovere il floppy." & Chr(10) & Chr(10) & _
       "Nota:" & Chr(10) & _
       "Tutte le procedure aperte verranno chiuse automaticamente." & Chr(10) & Chr(10) & _
       "Procedere con il backup?", vbInformation + vbYesNo, "Conferma operazione")
       If cConferma = 6 Then      ' vbYes = 6 (Operazione confermata)
          ' Chiusura del database ed eventuali form aperti
          Call ChiudiDatabase
          Unload frmXXX
          On Error GoTo Errore
          ' Scrittura sulla directory corrente e sul drive "A"
          Shell ("c:\programmi\winzip\winzip32.exe -a XXX.zip XXX.mdb"), vbNormalFocus
          Shell ("c:\programmi\winzip\winzip32.exe -a a:\XXX.zip XXX.mdb"), vbNormalFocus
          Exit Sub
       Else
          Exit Sub
       End If
    Errore:  ' Gestione di eventuali errori in sede di backup
       Call Errori(12)   ' Routine di visualizzazione messaggio di errore
       Exit Sub
    End Sub

    Note sull'esempio postato:

    Come noterai, per effettuare il backup è necessario chiudere prima il file. Nel mio esempio ho la funzione "ChiudiDatabase" che si occupa di questo. E' necessario perché altrimenti Winzip, pur effettuando regolarmente la compressione del file, ti segnalerà un messaggio di errore.
    Sempre nel mio esempio, chiudo pure i vari forms eventualmente aperti.
    Winzip a qesto punto inizia la compressione, prima su disco fisso poi su floppy. In caso di necessità di più floppy sarà lo stesso Winzip a chiederti di inserire altri dischetti.
    La chiamata alla funzione "Errori(12)" si occupa, nel mio caso, di gestire eventuali errori derivanti da Winzip (esempio: mancata esistenza di questo programma ecc.). Quindi, ed è di tutta evidenza, che una copia di Winzip deve essere installata sul pc...
    Per quanto attiene più propriamente il tuo caso, prova a sostituire al nome del file di esempio (XXX.mdb), la tua directory così:

    codice:
    Shell ("c:\programmi\winzip\winzip32.exe -a XXX.zip TuaDirectory\*.*"), vbNormalFocus
    Fammi sapere qualcosa.

    DI NUOVO CARI AUGURI A TUTTI!
    Giulio C. - Roma

  6. #6
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Giulio, grazie per il codice che ho già copiato. Sarà tema di approfondimento.
    Auguri di Buon anno.
    LM

  7. #7
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Shell ("c:\programmi\winzip\winzip32.exe -a XXX.zip TuaDirectory\*.*"),
    -a è l'opzione per comprimere ???? e xxx.zip è il nome delo zip creato ???

    dove posso trovare le altre opzioni per creare che ne so un archivio autoestraibile ???

  8. #8
    Ciao, scusatemi per il ritardo con il quale rispondo, ma capirete le feste...


    @LMondi:

    lieto di esserti stato di aiuto! Buon anno anche a te!


    @cassano:

    Ti posto il materiale in mio possesso:

    OPZIONI DI COMPRESSIONE:

    Winzip32 [-min] action [options] filename[.zip] files

    'action
    '-a for add, -f for freshen, -u for update, and -m for move. You must specify one (and only one) of these actions. The actions correspond to the actions described in the section titled "Add dialog box options" in the online manual

    'options
    '-r corresponds to the Include subfolders checkbox in the Add dialog and causes WinZip to add files from subfolders. Folder information is stored for files added from subfolders. If you add -p, WinZip will store folder information for all files added, not just for files from subfolders; the folder information will begin with the folder specified on the command line.
    '-ex, -en, -ef, -es, and -e0 determine the compression method: eXtra, Normal, Fast, Super fast, and no compression. The default is "Normal". -hs includes hidden and system files. Use -sPassword to specify a case-sensitive password. The password can be enclosed in quotes, for example, -s"Secret Password".

    'filename nome file con la cartella.


    OPZIONI DI DECOMPRESSIONE:

    Winzip32 -e [options] filename[.zip] folder
    ' where -e is required.

    'options
    '-o and -j stand for "Overwrite existing files without prompting" and "Junk pathnames", respectively. Unless -j is specified, folder information is used. Use -sPassword to specify a case-sensitive password. The password can be enclosed in quotes, for example, -s"Secret Password".

    'filename
    'file compresso oltre al nome file anche il percorso

    'folder
    'cartella dove si vuole ottenere i file compressi


    Per avere ulteriori informazioni sulle varie opzioni, puoi installare il "Command Line Support" direttamente da questa pagina web: http://www.winzip.com/prodpagecl.htm.

    Di fatto installerai un'estensione di Winzip che permette di gestire compressione o decompressione mediante il prompt di comando.
    Vi è inoltre un'ottima guida con tutte le opzioni possibili.

    Fammi sapere.

    Giulio C. - Roma

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    direi ottimo quello che mi mancava grazie

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2004
    Messaggi
    941
    Provate così....è un altro modo...
    ma non so rispetto ai vostri quali siano le differenze

    Set fs = CreateObject("Scripting.FileSystemObject")

    fs.CopyFile "\\nmi5099\Copia\nomefile.mdb", "\\nmi5099\Pianificazione\"

    é nel caso si voglia copiare una cartellla si usa copyfolder

    buon 2005
    domando solo qualcosa di nuovo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.