Newsgroup: it.comp.lang.visual-basic
Titolo: Come verifico l'esistenza di una cartella?

Il problema è che devo verificare l'esistenza di una cartella; se non esiste
la devo creare
Ho provato questo:
If  Dir(App.Path & "\" & "Miacartella") = "" Then
    MKDir(App.Path & "\" & "Miacartella")
End if
Ma purtroppo non funziona, qualcuno mi sa dire dove sbaglio?

 ha scritto nel messaggio
news:acnmrj$ovh$1...@lacerta.tiscalinet.it...

Questa è quella che mi sono fatto io
Ciao
Public Enum EPathExistsResults
    peNoFound = 0&
    peFile = 1&
    peDirectory = 2&
End Enum
Public Function PathExists(path As String) As EPathExistsResults
    '*** ==========================================
    '
    ' Controlla che il percorso passato esiste.
    '----------------------------------------------
    ' Parametri:
    '   path      : percorso da controllare
    '----------------------------------------------
    ' Ritorna:
    '   0 : percorso non trovato.
    '   1 : percorso è un file.
    '   2 : percorso è una directory.
    '----------------------------------------------
    ' Autore: Fabio
    '=============================================
    Dim attribs As VbFileAttribute
    On Error GoTo Exception:
    ' *** Inizializzazioni
    attribs = GetAttr(path)
    ' *** -----------------------------------
    ' Se ha passato la GetAttr() ha
    '   trovato il percorso.
    ' ---------------------------------------
    If ((attribs And vbDirectory) <> 0) Then
        ' *** -----------------------------------
        ' e' una directory.
        ' ---------------------------------------
        PathExists = peDirectory
    Else
        ' *** -----------------------------------
        ' e' un file.
        ' ---------------------------------------
        PathExists = peFile
    End If
    Exit Function
Exception:
    PathExists = peNoFound
    On Error GoTo 0
End Function
--
Questa è una risposta ritenuta inutile e maleducata da alcuni partecipanti.
(Campagna contro l'abuso del NewsGroup)

 .....

semplice:
Public Declare Function MakeSureDirectoryPathExists _
    Lib "IMAGEHLP.DLL" (ByVal DirPath As String) As Long
saluti ;)



Mi restituisce sempre 1. Che la cartella esista oppure no.
Ho provato con
    MsgBox MakeSureDirectoryPathExists("C:\Windows")
e mi restituisce 1;
    MsgBox MakeSureDirectoryPathExists("C:\Windows\")
e mi restituisce 1;
    MsgBox MakeSureDirectoryPathExists("C:\Cartella_che_non_esiste")
e mi restituisce 1;
    MsgBox MakeSureDirectoryPathExists("C:\Cartella_che_non_esiste\")
e mi restituisce 1;
Che significa?

 ha scritto nel messaggio
news:XLMH8.6462$8x3.1...@twister1.libero.it...


 la crea
infatti mi sembrava avesse chiesto questo! ;)

 End if
So che è bruttissimo ma funziona anche questo: ...-)))
sub creacartella()
    on error resume next
    MKDir(App.Path & "\" & "Miacartella")
End sub
ma meglio quella di Kudo.
ciao
-----= Posted via Newsfeeds.Com, Uncensored Usenet News =-----
http://www.newsfeeds.com
 - The #1 Newsgroup Service in the World!
-----==  Over 80,000 Newsgroups - 16 Different Servers! =-----

    If Dir(App.Path & "\MiaCartella\", vbDirectory) = "" Then
        MkDir App.Path & "\MiaCartella"
    End If
Ho provato e funziona abbastanza bene.
Se utilizzo questa funzione su 2 sistemi diversi, ossia WNT e W2K dà
risultati differenti, poichè App.Path in un caso mi restituisce anche "\"
mentre nell'altro caso no.
Potete verificare?
"ApipApip" <Chied...@AskMe.com> ha scritto nel messaggio
news:3cf35...@corp.newsgroups.com...


 Potete verificare?
Beh a me su XP non mi da' il "\" finale, tanto per dire...
Ma scusa, ma cosa ti frega?...;-) Tra l'altro se la dir e' la radice (es
"C:\") lo slash ci sara' sempre, quindi dovresti rendere il tuo codice piu'
parametrico e "insensibile" possibile a queste "varianti" (puo' trattarsi
anche di un errore)....
Fai cosi':
Sub CheckDir(NomeDir As String)
    NomeDir = AddSlash(NomeDir)
    If Dir(NomeDir, vbDirectory) = "" Then MkDir NomeDir
End Sub
Function AddSlash(sPath As Variant) As String
    If Right$(sPath, 1) <> "\" Then
        AddSlash = sPath & "\"
    Else
        AddSlash = sPath
    End If
End Function
--
   Alex Palmese
---
Sei anche tu stanco dei messaggi spam? Usa Terminator, il programma
anti-spam italiano FREEWARE! 
http://www.sertel.net/terminator/

Function AddSlash(sPath As Variant) As String
Perche' "sPath As Variant" in vece di un bel "ByVal sPath As String"?
-- 
ciao, hal

 End Function
Mi permetto una miglioria alla funzione:
Function AddSlash(sPath As String) As String
    AddSlash=Iif(right$(sPath,1)<>"\", sPath & "\", sPath)
End Function
Ciao,
- SonicBoom -
PS Lo so, lo so, non lo sapessi, ma lo so! Iif verifica entrambe le
condizioni, ma in questo contesto non da mica errori, e le prestazioni non
credo siano inficiate dall'uso di UN iif... :)
Mai usarlo, invece, in situazioni del tipo:
Prova%=Iif(r = 0, 5 / r, r)
... ma cosa sto a dirvelo a fare? :)