Newsgroup: it.comp.lang.visual-basic
Titolo: Sapere se esiste un file

vorrei sapere come fare per determinare se
un file esiste.....
grazie
--
Homer Simpson
home...@libero.it
hom...@tiscalinet.it
http://homersimp.tsx.org
 (In costruzione)

 un file esiste.....
Hai provato con la function "Dir"?
if len(Dir("c:\miofile"))>0 then
 ' // Il file esiste
else
 ' // Il file non esiste
end if
Certo, si puo' sempre usare il FSO che e' piu' professionale, ma linkare una
librerai *solo* per determinare l'esistenza o meno di un file non mi sembra
il caso. :)
Puoi sempre trappare un'open... oppure cercare tra le api. Cmq il metodo che
ti ho indicato dovrebbe funzionare.

 un file esiste.....


grazie, proverň e vi saprň dire...


 grazie, proverň e vi saprň dire...
vorrei sapere come mai questo listato
non funzia:
alla variabile inffile devo aggiungere
il valore di win dir piů una stringa...
Private Sub Form_Load()
WinDir = Space(255)
WinDirNum = GetWindowsDirectory(WinDir, Len(WinDir))
APIGetWin = StrConv(WinDir, vbFromUnicode)
FileEsistente
End Sub
Public Function FileEsistente()
InfFile = (WinDir) + "/inf/file.inf"
MsgBox InfFile
end function
--
H0m3r S1mps0n


Per prima cosa 10 frustate perche' non hai usato Option Explicit all' inizio
del modulo.
Se vuoi usare l' api di windows e' bene che tu sappia che tipi di dato gli
stai passando.
Quindi il codice diventa cosi':
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias
"GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As
Long
Private Sub Form_Load()
    Dim WinDir As String            ' buffer String passato all' api
    Dim WinDirNum As Long      ' numero di caratteri scritti dall' api
    WinDir = Space(255)            ' riempi il buffer
    WinDirNum = GetWindowsDirectory(WinDir, Len(WinDir))
    ' poiche' l' api ha scritto una stringa terminata da null, ti dice
quanti
    ' sono i caratteri buoni, prendi giusto quelli.
    WinDir = Left$(WinDir, WinDirNum)
    ' qui fai la tua chiamata
    FileEsistente WinDir
End Sub
' trasformata in una sub perche' tanto non ti interessa restituire un valore
' bisogna pero' passare la variabile che contiene il nome della directory
' di windows, perche' altrimenti perde l' informazione
Private Sub FileEsistente(ByVal WinDir As String)
    Dim InfFile As String
    ' concatena con & e non con + perche' vb a volte fa casino
    ' in questo caso no, ma se ci fossero delle stringhe numeriche
    ' le convertirebbe in numeri e farebbe la somma invece della
    ' concatenazione.
    InfFile = WinDir & "\inf\file.inf"
    MsgBox InfFile
End Sub
Adesso hai abbastanza materiale per farti un giro sull' help in linea.
Ciao
Aldo

 Adesso hai abbastanza materiale per farti un giro sull' help in linea.
fatto grazie....
questo però e l'inconveniente che trovo dopo:
non mi dà nessun errore ma secondo me c'è qlc prob
perchè sembra vada in un loop infinito...
vi prego di aiutarmi!
la variabile letturaoptions non viene mai aumentata
e quindi lenseek una sola volta!!!
Seek #1, 24
        LetturaOptions = 0
        LenSeek = 24
30      Seek #1, LenSeek
        Input #1, Options
            Select Case Options
            Case ""
                GoTo 40
            Case Else
                Select Case LetturaOptions
                Case 0
                If Options = "NULL" Then
                Else
                    frmOptions.txtPassword.Text = Options
                End If
                LenSeek = LenSeek + Len(Options)
                GoTo 30
                Case 1
                MsgBox Options
                End Select
                LetturaOptions = LetturaOptions + 1
                MsgBox LetturaOptions, , Options
            End Select


 le faccio in un modulo separato!
Variabili globali, dunque. Ahi, ahi, ahi ! L' applicazione diventa poco
scalabile.

Francamente non sono abituato ad usare GoTo perche' lascia il codice
disordinato e permette facilmente di perderne il controllo, sicche' mi trovo
un po' a disagio.
A vederlo cosi', mi sembra che LetturaOptions venga incrementato solo nel
caso di Options = 1.
Ciao
Aldo

 caso di Options = 1.
no, come vedi dalla sottolineatura, cmq ho risolto grazie,.....


 why?
Immagina piu' istanze di un oggetto che eseguono la routine ed impostano
piu' o meno la stessa variabile globale.
Da una riga all' altra tale variabile cambia valore e non si capisce perche'
!
Brrr !
Ciao e buona domenica.
Aldo