Newsgroup: it.comp.lang.visual-basic
Titolo: Conoscere una Directory...

Col comando Dir posso sapere se un file esiste o meno, ma c'č un modo
per sapere in quale directory esso si trovi?
So che potrebbe stare in piů directory diverse, ma a me basta saperne
una!
Grazie e ciao a tutti. :-)
               --Please also reply via E-Mail--
                      4169522043485253

 Grazie e ciao a tutti. :-)
Ciao

Scusa se non sono stato chiaro, provo a spiegarmi meglio:
Ho tirato fuori la funzione Dir tanto per fare un esempio. (capisco
che è molto mal riuscito)
Ammettiamo che io conosca il nome di un file (perchè lo so per certo),
es. winzip32.exe.
Bene ora vorrei sapere in che directoty si trova?
Certamente un tizio potrebbe avere anche più file che si chiamano
winzip32.exe (quindi diverse directory), ma a me ne basterebbe trovare
una sola.
Grazie e ciaOO!


Bene ora vorrei sapere in che directoty si trova?
Purtoppo non esiste una funzione simile in VB, ma puoi provare ad usare
questa che ho scritto io.
I 2 parametri che gli devi passare sono la Directory in cui vuoi cercare e
il nome del File da cercare.
es:
Percorso=TrovaPercorso("c:\documenti","Pippo.dat")
Se 'Pippo.dat' esiste ti ritroverai la sua directory in Percorso. Se, al
contrario, non esiste Percorso sara vuota ("")
Purtroppo non è che sia molto veloce (un bel po' di ottimizzazione non è che
gli farebbe male) , ma spero ti possa essere utile
Ciao
Daniele
Public Function TrovaPercorso(Directory As String, File As String) As String
Dim pstrDirectory() As String, pstrAgg As String
Dim pstrPercorso As String, pstrNome As String
Dim plngNumDir As Long, plngCont As Long
'Sistema le eventuali imperfezione nei percorsi
If Right(Directory, 1) <> "\" Then Directory = Directory & "\"
'Inizializza le variabili
pstrPercorso = Directory
'Corpo della routine
Scannerizza:
If Right(pstrPercorso, 1) <> "\" Then pstrPercorso = pstrPercorso & "\"
pstrNome = Dir(pstrPercorso, vbDirectory)
Do While pstrNome <> ""
     If pstrNome <> "." And pstrNome <> ".." Then
        If (GetAttr(pstrPercorso & pstrNome) And vbDirectory) = vbDirectory
Then
         plngNumDir = plngNumDir + 1
         ReDim Preserve pstrDirectory(plngNumDir)
         pstrDirectory(plngNumDir) = pstrAgg & pstrNome
        Else
            If pstrNome = File Then
                TrovaPercorso = pstrAgg
                Exit Function
            End If
        End If
   End If
   pstrNome = Dir
Loop
'Esamina le sotto-directory
If plngCont < plngNumDir Then
    plngCont = plngCont + 1
    pstrPercorso = Directory & pstrDirectory(plngCont)
    pstrAgg = pstrDirectory(plngCont) & "\"
    GoTo Scannerizza
End If
End Function

 wrote in message
7hk96b$5vr$1...@nslave1.tin.it...


Grazie


dirpath= Dir(file)
dove file è il nome e il percorso del file .es
***********
dirpath = Dir("c:\windows\
command.com
")
*********
risultato:
dirpath ----------> "C:\windows"
PicRaf(16) UIN:17464161

 dirpath ----------> "C:\windows"
Manco per niente!... La Dir ritorna il nome del file e non la directory.
In questo caso:
dirpath  ------> "
COMMAND.COM
"
Quindi data la variabile "FullPath" dove viene registrato il percorso
completo del file, bisognerebbe fare qualcosa del genere:
Function DirPath(FullPath As String) As String
    DirPath=left$(FullPath,Len(FullPath)-Len(Dir(FullPath)))
End Function
Ciao!
--
    Alex Palmese
Attenzione: per scrivermi togliete "$$$" dall'indirizzo!