Discussione chiusa
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Controllo se file esiste

  1. #1
    pazienza non è in linea Scolaretto
    Post
    208
    Like Inviati  
    0
    Like Ricevuti  
    0
    salve

    con il seguente codice,si dovrebbe controllare se un file ini esiste o meno
    sul disco.

    Ho notato che sia che il file esiste o no, io ricevo sempre ESISTE

     
    Const INIFileName = "C:\carmelina\MioFile.ini"
    Private Sub Form_Load()
    Dim esiste As String
    If esiste = Dir("C:\Miofile.ini") Then
       MsgBox "Non esiste"
       End
    Else
       MsgBox "Esiste"
    End If
    End Sub
    
    Dove é l'errore ?
    grazie
    pazienza

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,816
    Like Inviati  
    0
    Like Ricevuti  
    23
    Quote Originariamente inviato da pazienza Visualizza il messaggio
    salve

    con il seguente codice,si dovrebbe controllare se un file ini esiste o meno
    sul disco.

    Ho notato che sia che il file esiste o no, io ricevo sempre ESISTE

     
    Const INIFileName = "C:\carmelina\MioFile.ini"
    Private Sub Form_Load()
    Dim esiste As String
    If esiste = Dir("C:\Miofile.ini") Then
       MsgBox "Non esiste"
       End
    Else
       MsgBox "Esiste"
    End If
    End Sub
    
    Dove é l'errore ?
    grazie
    pazienza
    .....
    Io uso questo per vedere se esiste:
    If Len(Dir(PercorsoCompleto))>0 Then
       Esiste
    Else
       No
    End if
    
    ℹ️ Leggi di più su @Alex ...

  3. #3
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    1. Dichiari una "Const INIFileName" che poi non usi mai.
    2. La stringa "esiste" è sempre vuota perchè mai inizializzata.
    Mi stupirei parecchio se quel codice funzionasse come desiderato.

    Comunque il codice essenziale per il check su esistenza file è :

        If Dir("C:\Test.txt") <> "" Then
            MsgBox "Esiste"
        Else
            MsgBox "Non Esiste"
        End If
    
    ℹ️ Leggi di più su MarcoGG ...

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,816
    Like Inviati  
    0
    Like Ricevuti  
    23
    Quote Originariamente inviato da MarcoGG Visualizza il messaggio
    1. Dichiari una "Const INIFileName" che poi non usi mai.
    2. La stringa "esiste" è sempre vuota perchè mai inizializzata.
    Mi stupirei parecchio se quel codice funzionasse come desiderato.
    Pur concordando con tutte le osservazioni che fai...quel codice è uguale a quello da te postato.
    Quote Originariamente inviato da MarcoGG Visualizza il messaggio
    Comunque il codice essenziale per il check su esistenza file è :

        If Dir("C:\Test.txt") <> "" Then
            MsgBox "Esiste"
        Else
            MsgBox "Non Esiste"
        End If
    
    Tu confronti con ""(io avrei usato vbNullString ) e lui confronta con una variabile stringa inizializzata ma non valorizzata che vale di certo vbNullString...
    dopo di chè ha confrontato con = invece che con <> dovendo pertanto invertire il senso... ma è PERFETTAMENTE UGUALE.
    Io non ci trovo motivi di malfunzionamento.
    ℹ️ Leggi di più su @Alex ...

  5. #5
    Post
    635
    Blogs
    2
    Like Inviati  
    0
    Like Ricevuti  
    0
    A mio avviso il miglior metodo è il seguente:

    Public Function EsisteFile(ByVal str As String) As Boolean
        On Error Resume Next
        EsisteFile = (GetAttr(str) And vbDirectory) = 0
    End Function
    
    ℹ️ Leggi di più su vbExtreme ...

  6. #6
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Pur concordando con tutte le osservazioni che fai...quel codice è uguale a quello da te postato.


    Tu confronti con ""(io avrei usato vbNullString ) e lui confronta con una variabile stringa inizializzata ma non valorizzata che vale di certo vbNullString...
    dopo di chè ha confrontato con = invece che con <> dovendo pertanto invertire il senso... ma è PERFETTAMENTE UGUALE.
    Io non ci trovo motivi di malfunzionamento.
    Evidentemente ti è sfuggito l'errore logico più importante.
    Se lui mette e toglie il file da "C:\carmelina\MioFile.ini", nome completo del file che mette in una Const, che poi non usa nel check, evidentemente ha lasciato un file ini anche nel secondo percorso ( quello che da in pasto all'effettivo controllo ). Il che spiegherebbe come mai restituisca sempre "ESISTE".

    Il mio sistema funziona in ogni caso. In forma più descrittiva :
        Dim strDir As String
        Dim nomeCompletoFile As String
        nomeCompletoFile = "C:\Test.txt"
        strDir = Dir(nomeCompletoFile)
            
        MsgBox strDir
    
        If strDir = "" Then
            MsgBox "Non Esiste"
        Else
            MsgBox "Esiste"
        End If
    
    Che Dir() restituisca o meno il fullPath del file, in questo caso poco importa, perchè comunque percorso da dare in pasto a Dir() deve essere completo, e non ci sono rischi di ambiguità.

    Sulla differenza tra "" e vbNullString in VB6, mi risulta ci sia solo un discorso di allocazione di memoria ( con un vantaggio di vbNullString ) ma agli effetti pratici nel presente caso è irrilevante.
    ℹ️ Leggi di più su MarcoGG ...

  7. #7
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,816
    Like Inviati  
    0
    Like Ricevuti  
    23
    Quote Originariamente inviato da MarcoGG Visualizza il messaggio
    Evidentemente ti è sfuggito l'errore logico più importante.
    Se lui mette e toglie il file da "C:\carmelina\MioFile.ini", nome completo del file che mette in una Const, che poi non usa nel check, evidentemente ha lasciato un file ini anche nel secondo percorso ( quello che da in pasto all'effettivo controllo ). Il che spiegherebbe come mai restituisca sempre "ESISTE".
    No no .. fermo a me non è scappato nulla...!
    La dichiarazione della Costante nel suo codice non serve a nulla per valutare se il codice di controllo funziona o meno, e come tale non va considerata, se poi il file è un'altro posto la funzione
    deve in tutti i modi dire se esiste o no...!
    In questo è IDENTICO al tuo...!

    Quote Originariamente inviato da MarcoGG Visualizza il messaggio
    Il mio sistema funziona in ogni caso. In forma più descrittiva :
        Dim strDir As String
        Dim nomeCompletoFile As String
        nomeCompletoFile = "C:\Test.txt"
        strDir = Dir(nomeCompletoFile)
            
        MsgBox strDir
    
        If strDir = "" Then
            MsgBox "Non Esiste"
        Else
            MsgBox "Esiste"
        End If
    
    Che Dir() restituisca o meno il fullPath del file, in questo caso poco importa, perchè comunque percorso da dare in pasto a Dir() deve essere completo, e non ci sono rischi di ambiguità.

    Sulla differenza tra "" e vbNullString in VB6, mi risulta ci sia solo un discorso di allocazione di memoria ( con un vantaggio di vbNullString ) ma agli effetti pratici nel presente caso è irrilevante.
    La questione di usare le costanti di sistema è solo di pulizia e buona norma...!
    ℹ️ Leggi di più su @Alex ...

  8. #8
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    No no .. fermo a me non è scappato nulla...!
    La dichiarazione della Costante nel suo codice non serve a nulla per valutare se il codice di controllo funziona o meno, e come tale non va considerata, ...
    E' proprio questo il punto, invece.
    Quella Const va considerata eccome, perchè, come penso, se lui ha fatto casino tra percorso della Const e percorso reale del check, si spiega il perchè non dia il risultato sperato.
    Ora, ripeto, io penso che lui per testare il suo check vada in "\carmelina\" a mettere/togliere il file.
    Solo che in "C:\" ha lasciato lo stesso file ini ! Probabilmente frutto di un check precedente.
    E allora è ovvio che gli restituisce sempre "ESISTE". Non so se mi spiego.
    Solo quando correggerà quel check così :
    If esiste = Dir(INIFileName) Then
    ...
    


    si renderà conto che funziona.

    Per questo parlo di errore logico, o se preferisci "errore occulto", che sta alla base di tutto.
    Il mio codice potrà essere sintatticamente equivalente, ma non uguale ( io non mi sogno di creare una String vuota da usare al posto di un semplice "", e non creo variabili per lasciarle inutilizzate ), e soprattutto non è uguale il suo utilizzo, ossia le condizioni di test.

    In ogni caso la Function Dir() è già più che sufficiente, perchè l'hanno inventata apposta.
    Non c'è alcun bisogno di fare una Len su Dir, e tantomeno tirare in ballo una GetAttr() per vedere se va in errore...
    ℹ️ Leggi di più su MarcoGG ...

  9. #9
    pazienza non è in linea Scolaretto
    Post
    208
    Like Inviati  
    0
    Like Ricevuti  
    0
    Vi ringrazio tutti, anche se inizialmente non riuscivo a comprendeere qual'era
    la soluzione migliore.

    Ho scelto provando e sostituendo con
     
    Dir(INIFileName)
    
    ed adesso funziona a dovere
    Ed infatti quel file si trovava anche in altra dir e percio' appariva sempre ESISTE
    con
     
    Dir(INIFileName)
    
    invece controlla solo dove deve controllare
    Ancora grazie. anche le altre soluzioni le ho conservate per future necessità.
    grazie
    pazienza

  10. #10
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da pazienza Visualizza il messaggio
    ho scelto provando e sostituendo con
     
    dir(inifilename)
    
    ed adesso funziona a dovere
    ed infatti quel file si trovava anche in altra dir e percio' appariva sempre esiste
    c.v.d.
    ℹ️ Leggi di più su MarcoGG ...

Discussione chiusa
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. HTML esiste un codice che consenta il download di file txt?
    Da Francesco53 nel forum HTML, CSS e JavaScript
    Risposte: 5
    Ultimo Post: 08-04-2018, 15:14
  2. Risposte: 5
    Ultimo Post: 13-06-2014, 21:20
  3. come vedere se esiste un file in una cartella
    Da mattoneo nel forum Visual Basic 6
    Risposte: 7
    Ultimo Post: 20-02-2008, 21:47
  4. Generare un evento se in una directory il file esiste
    Da nightingales nel forum Visual Basic .Net
    Risposte: 3
    Ultimo Post: 22-02-2006, 09:52
  5. Verifica se esiste file
    Da malibu nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 18-01-2006, 14:55