Newsgroup: it.comp.lang.visual-basic
Titolo: AIUTO - FileExists (Come si usa in VB) ?

Avrei necessità di utilizzare la funzione "FileExists" per rintracciare dei
File ma essendo alle prume armi in fatto di VB, vi pregherei di aiutarmi con
qualche esempio in quanto non riesco a capire cosa si intenda per
FileSystemObject che è nella sintassi, obbligatorio inserire prima della
funzione "FileExists":
Sintassi:
oggetto.FileExists(specfile)
Grazie di cuore a chi intende aiutarmi.
Daniel

 ha scritto nel messaggio
news:8vnplu$8e$1...@fe2.cs.interbusiness.it...


 oggetto.FileExists(specfile)
L'oggetto "FileSystemObject" e` l'oggetto "proprietario" della funzione
"FileExists". Ovvero, se vuoi che Visual Basic rintracci la funzione
"FileExists" devi indicargli dove potra` trovarla. Una specie di "percorso",
insomma.
Normalmente un progetto Visual Basic ha fra i riferimenti solamente le
"librerie":
    stdole, OLE Automation
    VB, Visual Basic objects and procedures
    VBA, Visual Basic For Applications
    VBRUN, Visual Basic runtime objects and procedures
come puoi verificare accedendo a "Object Browser|Visualizzatore Oggetti"
(tasto F2).
Pertanto se vorrai usare nel tuo progetto Oggetti, Funzioni, Metodi presenti
in altre librerie, come nel caso di:
   Scripting, Microsoft Scripting Runtime
avrai due possibilita`:
    Riferirti *anticipatamente* a queste, ossia aggiungendo ai riferimenti
del progetto la libreria, mediante il menu`:
    Strumenti
    > Riferimenti...
Modalita`, questa,  chiamata "Early Binding".
-oppure-
    Riferirti a tale libreria da codice, "piu` tardi" (ing.: "Late"), quando
nel tuo progetto ne avrai realmente bisogno; mediante l'uso delle funzioni:
    VBA.Interaction.CreateObject(Class As String, [ServerName As String])
-oppure-
    VBA.Interaction.GetObject([PathName], [Class])
Consulta la guida a proposito di queste due funzioni e troverai praticamente
tutto quello che di fondamentale c'e` da sapere in proposito.
Torniamo al tuo caso particolare.
Se nel progetto avrai aggiunto ai riferimenti:
    Scripting, Microsoft Scripting Runtime
potrai usare:
    Function FileExists(FileSpec As String) As Boolean
        Member of Scripting.FileSystemObject
        Check if a file exists
per esempio in questo modo:
    Option Explicit
    Sub Main()
      Dim fso As Scripting.FileSystemObject
      Set fso = New Scripting.FileSystemObject
      If fso.FileExists("c:\autoexec.bat") Then
        Debug.Print "Esiste."
      Else
        Debug.Print "Non esiste."
      End If
      Set fso = Nothing
    End Sub
Se, invece, tale riferimento non ci fosse, potresti scrivere cosi`:
    Option Explicit
    Sub Main()
      Dim fso As Object
      Set fso = CreateObject("Scripting.FileSystemObject")
      If fso.FileExists("c:\autoexec.bat") Then
        Debug.Print "Esiste."
      Else
        Debug.Print "Non esiste."
      End If
      Set fso = Nothing
    End Sub
Va da se' che nella macchina in cui girera` il tuo programma dovra` essere
presente tale libreria. E dovrebbe essere compito del tuo programma di
installazione fare le opportune verifiche.
Considera anche, nel caso particolare, la possibilita` di usare la funzione:
    VBA.FileSystem.Dir( _
          [PathName] _
        , [Attributes As VbFileAttribute = vbNormal] _
        ) As String
in questo modo:
    Option Explicit
    Sub Main()
      If Len(Dir$("c:\autoexec.bat")) Then
        Debug.Print "Esiste."
      Else
        Debug.Print "Non esiste."
      End If
    End Sub
Meglio ancora creando una *tua* funzione "FileExists". Per esempio:
    Option Explicit
    Public Function FileExists( _
      ByVal FileSpec As String _
    ) As Boolean
      FileExists = Len(Dir$(FileSpec)) > 0
    End Function
    Sub Main()
      If FileExists("c:\autoexec.bat") Then
        Debug.Print "Esiste."
      Else
        Debug.Print "Non esiste."
      End If
    End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------