Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [vb6] CommonDialog showSave e evitare che il file sia sovrascritto

    Ciao, avendo la necessità di salvare un file di testo mi sono affidato ad una commondialog.
    Il mio problema è come fare per evitare che un file venga sovrascritto qualora esista già. Ho provato ad usare il fileExist di fso all'interno della sub della commondialog ma quest'ultima mi si chiude quando clicco su salva e il controllo viene fatto dopo.

    Per ora ho fatto così, ma vorrei evitare che la commonD venga chiusa ed eventualmente riaperta:
    codice:
        CommonDialog1.CancelError = True
        On Error GoTo ErrHandler
        CommonDialog1.Flags = cdlOFNHideReadOnly
        CommonDialog1.Filter = "access2access saved file (*.a2a)|*.a2a"
        CommonDialog1.FilterIndex = 2
        CommonDialog1.ShowSave
        nomeFile = Trim(CommonDialog1.FileName)
        
        If LCase(Right(nomeFile, 4)) <> ".a2a" Then nomeFile = nomeFile & ".a2a"
        
        Dim fso As New FileSystemObject
        
        If fso.FileExists(nomeFile) Then
            If MsgBox("Il file selezionato esiste già." & vbCrLf & "Vuoi sostituirlo?", vbYesNo, "Sovrascrivere il file?") = vbNo Then
                Call salva
                Exit Sub
            End If
        End If
    xxx

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    6
    codice:
        DO
        CommonDialog1.CancelError = True
        On Error GoTo ErrHandler
        CommonDialog1.Flags = cdlOFNHideReadOnly
        CommonDialog1.Filter = "access2access saved file (*.a2a)|*.a2a"
        CommonDialog1.FilterIndex = 2
        CommonDialog1.ShowSave
        nomeFile = Trim(CommonDialog1.FileName)
        
        If LCase(Right(nomeFile, 4)) <> ".a2a" Then nomeFile = nomeFile & ".a2a"
    
        Dim fso As New FileSystemObject
        
        If fso.FileExists(nomeFile) Then
            If MsgBox("Il file selezionato esiste già." & vbCrLf & "Vuoi sostituirlo?", vbYesNo, "Sovrascrivere il file?") = vbNo Then
                Call salva
                Exit DO
            End If
        
        ELSE
            EXIT DO
    
        End If
        LOOP
    ...le modifiche sono in rosso

  3. #3
    Grazie
    Nel tuo modo comunque ottengo lo stesso mio risultato (la il codice che ho postato sopra era contenuto nella sub salva()) anche se il ciclo lo preferisco.

    Mi sarebbe piaciuto mostrare il msgbox di avviso sovrascrizione mantenendo aperta (e visibile) la commonD, ma così va bene lo stesso.


    Una domanda fagiana, come posso far si che la finestra della commonD nella textbox del nome file ne contenga uno scelto da me di default (o eventualmente che questo sia in bianco)?
    xxx

  4. #4
    prova a fare
    dlgFinestra.filename="default.txt"
    opp
    dlgFinestra.filetitle="default.txt"
    o ambedue

    prima di richiamare il metodo ShowSave

  5. #5
    Ok, funzica.
    Ero così fagiano da metterlo dopo lo showSave

    Ciao e grazie
    xxx

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.