PDA

View Full Version : [vb6] Controllare l'esistenza di una directory


Snivel
30-11-2007, 16:04
cioa a tutti volevo porvi il mio problema spero possiate aiutarmi

attraverso un CommandButton vorrei creare un cartella pero se la cartella gia esiste nn deve creare la cartella e deve generare un MsgBox che dice che la cartella esiste gia. Il codice per creare la cartella l'ho scritto cosi:

Private Sub CreaDir_Click()
MkDir ("C:\cartella")
MsgBox "Percorso Cartella: C:\cartella", 0, "Operazione Completata!"

End Sub

e' anche presente un msg box che dice che la cartella e' stata creata

Potete aiutarmi???

Jam3s
30-11-2007, 21:08
Puoi fare qlc del genere:

Private Sub CreaDir_Click()
On Error Resume Next
MkDir ("C:\cartella")
If Err.Number<>0 Then
MsgBox "Errore: " & CStr(Err.Number) & " Descrizione: " Err.Description
Else
MsgBox "Percorso Cartella: C:\cartella", 0, "Operazione Completata!"
End If

Così gestisci anche eventuali altri errori.
Se poi vuoi gestire in maniera custom + tipi di errori allora anzichè un If puoi fare uno switch case sul numero di errore.

Snivel
03-12-2007, 18:55
scusate se faccio reply in ritardo cmq sei stato genitlissimo il codice funziona!!
un altro piccolo aiutino pls

vorrei disabilitare un pulsante se la cartella esiste come si puo fare???

(es. se C:\cartella esiste allora disabilita Pulsante)

thx anticipate

okay
03-12-2007, 19:35
scusate se faccio reply in ritardo cmq sei stato genitlissimo il codice funziona!!
un altro piccolo aiutino pls

vorrei disabilitare un pulsante se la cartella esiste come si puo fare???

(es. se C:\cartella esiste allora disabilita Pulsante)

thx anticipate

if "C:\cartella" then
button1.enabled=false
endif

Snivel
03-12-2007, 19:45
FANTASTICO!!!

Grande!!!

Grazie per il vostro aiuto a presto!!!

Snivel
03-12-2007, 19:56
Ops ho un problemone io il codice l'ho scritto cosi:

Private Sub CreaDir_Click()
On Error Resume Next
MkDir ("C:\cartella")
MsgBox "Percorso Cartella: C:\cartella\ !!"
If "C:\cartella Then CreaDir.Enabled = False
End Sub

poi avio il prog e creao la cartella dal button, la cartella si crea e si disabilita il pulsante. Se avvio di nuovo il prog pero il pulsante nn e' disabilitato anche se la cartella esiste!!!! Come posso Ovviare al Problema??

Jam3s
03-12-2007, 20:50
Il controllo se la cartella esiste lo devi fare sull'evento OnLoad (o OnInit). Poi sull'OnClick, se la cartella viene creata disabiliti il pulsante ma quel controllo If(c.\cartella) sul Click è inutile perchè sai che esiste in quanto l'hai appena creata.

Snivel
03-12-2007, 22:26
ho capito cosa vuoi dire sei stato chiarissimo ma nn trovo il metodo OnLoad ( o OnInit) potresti darmi una mano?? (P.S.: Uso vb6)

anche con codici di esempio, per me fa lo stesso:)

whiles_
03-12-2007, 22:43
Questa credo sia un po' più veloce:
Public Function DirectoryExists(Dir As String) As Boolean
Dim oDir As New Scripting.FileSystemObject
DirectoryExists = oDir.FolderExists(Dir)
End Function

Snivel
05-12-2007, 19:34
grazie per il chiaro esempio che mi hai fatto, davvero gentile

mi dirai che son niubbo ma desidero imparare:

come collego la funzione alla proprieta enabled del button da disabilitare??

thx anticipate per l'aiuto;)

Snivel
05-12-2007, 22:29
UP urgente pls!!!:help: :help:

okay
05-12-2007, 22:51
Ops ho un problemone io il codice l'ho scritto cosi:

Private Sub CreaDir_Click()
On Error Resume Next
MkDir ("C:\cartella")
MsgBox "Percorso Cartella: C:\cartella\ !!"
If "C:\cartella Then CreaDir.Enabled = False
End Sub

poi avio il prog e creao la cartella dal button, la cartella si crea e si disabilita il pulsante. Se avvio di nuovo il prog pero il pulsante nn e' disabilitato anche se la cartella esiste!!!! Come posso Ovviare al Problema??

dim Directori as string
Directori = "c:\okay"
If Dir(Directori) = "" Then
CreaDir.Enabled = False
else
MkDir "c:\okay"
End Sub

va bene così?


ciao

Snivel
05-12-2007, 23:07
grazie per l'aiuto ma purtroppo non riesco nell'operazione potresti darmi invece una mano con la funzione riportata qualche post piu sopra??

dovrebbe andare bene ma nn so come richiamarla:

Public Function DirectoryExists(cart As String) As Boolean
Dim oDir As New Scripting.FileSystemObject
DirectoryExists = oDir.FolderExists(cart)
End Function

scrivo la funzione poi nel Form_Load() scrivo:

Call DirectoryExists("C:\cartella")

If DirectoryExists = True Then Button.Enabled = False
If DirectoryExists = False Then Button.Enabled = True

ma nn funziona!!!:doh: :doh:

dove sbaglio???

okay
06-12-2007, 07:02
grazie per l'aiuto ma purtroppo non riesco nell'operazione potresti darmi invece una mano con la funzione riportata qualche post piu sopra??

dovrebbe andare bene ma nn so come richiamarla:

Public Function DirectoryExists(cart As String) As Boolean
Dim oDir As New Scripting.FileSystemObject
DirectoryExists = oDir.FolderExists(cart)
End Function

scrivo la funzione poi nel Form_Load() scrivo:

Call DirectoryExists("C:\cartella")

If DirectoryExists = True Then Button.Enabled = False
If DirectoryExists = False Then Button.Enabled = True

ma nn funziona!!!:doh: :doh:

dove sbaglio???


DirectoryExists (StringDir)

Snivel
06-12-2007, 09:03
il tuo aiuto e' stato prezioso ma son di fronte ad un nuovo problema:

mi da errore alla stringa della funzione

Dim oDir As New Scripting.FileSystemObject

nn so il motivo.

magari usando vb6 nn e' che c'e' un qualche tipo di incompatibilità??