View Full Version : VB verificare una folder
texerasmo
05-04-2004, 10:18
Mi sto improvvissando un programmatore in vb
Come si fa a controllare se esiste una dir ?
Grazie a tutti
'code
MyPath = "c:\" ' Imposta il percorso.
myname = Dir(MyPath, vbDirectory) ' Recupera la prima voce.
Do While myname <> "" ' Avvia il ciclo.
myname = Dir ' Legge la voce successiva.
If myname = "MyDir" Then
GoTo vabene 'si esiste
Else
End If
Loop
MkDir "c:\MyDir" 'crea folder MyDir
vabene:
'fine code
ciao
texerasmo
05-04-2004, 10:53
ciao scusami...
Private Sub Command1_Click()
MyPath = "c:\" ' Imposta il percorso.
myname = Dir(MyPath, GMDabase) ' Recupera la prima voce.
Do While myname <> "" ' Avvia il ciclo.
myname = Dir ' Legge la voce successiva.
If myname = "MyDir" Then
Label1.Enabled = True 'si esiste
Else
End If
Loop
Label2.Enabled = False
'fine code
End Sub
Private Sub Form_Load()
Label1.Enabled = False
End Sub
GMDabase è il nme della mia dir che deve cercare Giusto?
Se è cosi' non mi funziona
tnks
texerasmo
05-04-2004, 10:56
scusami ...
funziona perferttamente grazie ...
era così
Private Sub Command1_Click()
MyPath = "c:\" ' Imposta il percorso.
myname = Dir(MyPath, vbDirectory) ' Recupera la prima voce.
Do While myname <> "" ' Avvia il ciclo.
myname = Dir ' Legge la voce successiva.
If myname = "GMDabase" Then
Label1.Enabled = True 'si esiste
Else
End If
Loop
Label2.Enabled = False
'fine code
End Sub
Private Sub Form_Load()
Label1.Enabled = False
End Sub
Pensavo che vbDirectory era il nome della mia dir..
invece era MYdir giustamente :)
Grazie
texerasmo
05-04-2004, 11:28
Private Sub Form_Load()
MyPath = "c:\" ' Imposta il percorso.
myname = Dir(MyPath, vbDirectory) ' Recupera la prima voce.
Do While myname <> "" ' Avvia il ciclo.
myname = Dir ' Legge la voce successiva.
If myname = "GMDabase" Then
Form1.Show 'si esiste
'Form3.Hide
Else:
Form3.Show
'Form2.Hide
'Form1.Hide
End If
Loop
'fine code
Form2.Hide
End Sub
Ho del pb mi entra sia nell
if che ne else
texerasmo
05-04-2004, 11:33
mi è scappato l'invio per sbaglio... :D
dicevo...
ho ancaora dei pb ... :(
Private Sub Form_Load()
MyPath = "c:\" ' Imposta il percorso.
myname = Dir(MyPath, vbDirectory) ' Recupera la prima voce.
Do While myname <> "" ' Avvia il ciclo.
myname = Dir ' Legge la voce successiva.
If myname = "GMDabase" Then
Form1.Show 'si esiste
Else:
Form3.Show
End If
Loop
'fine code
Form2.Hide
End Sub
Ma mi entra si nell if che nell else ossia io vedo entrambi le le form
come mai?
davidino80
05-04-2004, 12:33
ieri avevo aperto un thread simile.. sul controllo di un file. nn può funzionare la stessa soluzione? usando il DIR praticamente..
http://forum.hwupgrade.it/showthread.php?s=&threadid=657545
No, nn va bene, perchè per un file è OK, per una cartella lui ti fa vedere il suo contenuto...per cui se la cartella esiste ma è vuota a te tornerà che è vuota, per cui come se nn esistesse, ma in verità c'è!! Scusa il gioco di parole :)
Oppure ragazzi come sempre affidiamoci alla bellissime e buonissime API.... ed il gioco è fatto :)
Private Declare Function PathIsDirectory Lib "shlwapi.dll" Alias "PathIsDirectoryA" (ByVal pszPath As String) As Long
Private Sub Form_Load()
msgbox CBool(PathIsDirectory("c:\WinNT"))
texerasmo
05-04-2004, 13:27
funziona :D
ok tnks
texerasmo
05-04-2004, 13:37
funziona :D
ok tnks
texerasmo
05-04-2004, 14:30
e se la cosa diventa un po + complessa... :D
se la dir che devo cercare non si trova in un alberatura precisa?
Il discorso si complica abbastanza ?
Originariamente inviato da texerasmo
e se la cosa diventa un po + complessa... :D
se la dir che devo cercare non si trova in un alberatura precisa?
Il discorso si complica abbastanza ?
Un pochino si...
Spiegaci bene cosa vorresti fare, o perchè sta cartella dovrebbe trovarsi in giro ?
Così almeno sappiamo bene cosa affrontiamo :D
texerasmo
05-04-2004, 15:11
sto cercando di fare un cd... :)
L'applicazione che sto facendo deve lanciarmi
mysql
jetty
il broswer con la l'url sulla porata 9090
Ora io sono riuscito a fare tutto questo con un file bat
che fa questo
@ECHO OFF
rem set JAVA_HOME=C:\j2sdk1.4.1_01
rem set PATH=%JAVA_HOME%\bin;%PATH%;
rem set CLASSPATH=%JAVA_HOME%\lib\tools.jar;.;%CLASSPATH%;
java -cp C:\j2sdk1.4.1_01\lib\tools.jar;. Prova
Prova .... è una classe che fa questo..
public static void main(String args[])
{
try
{
System.out.println("Carico MySQL...");
Runtime.getRuntime().exec("C:\\GMDabase\\mysql\\bin\\mysqld-nt -u root");
System.out.print("fatto.");
System.out.print("Setto la JAVA_HOME e il PATH.");
System.out.println("Carico Jetty...");
Runtime.getRuntime().exec("setEnv_java.BAT");
Runtime.getRuntime().exec("C:\\j2sdk1.4.1_01\\bin\\java -cp C:\\j2sdk1.4.1_01\\lib\\tools.jar;. -jar start.jar etc\\gm.xml");
System.out.print("fatto.");
long l = System.currentTimeMillis();
for(long l1 = System.currentTimeMillis(); l1 - l < 15000L; l1 = System.currentTimeMillis());
System.out.println("Carico il browser...");
BrowserLauncher.openURL("http://localhost:9090/");
System.out.print("fatto.");
}
catch(Exception exception)
{
System.out.println("Errore: " + exception.getMessage());
}
}
ovvero mi lancia un
setEnv_java.BAT (mi crea delle var di ambiente)
far partire jetty
e il broswer
Ora io non so dove si trova questo file bat l'unica cosa che so è la sua dir di appartenenza.
spero di essere stato chiaro.
Dici che per esempio sta dentro la cartella A, che è la route, ma potrebbe essere dentro la cartella C ?
texerasmo
05-04-2004, 16:26
si..
in pratica il file bat è sempre dentro una folder di nome
GMErasmo
GMErasmo si potrebbe trovare ovunque....
se però cercare GMErasmo richiede alla macchina tanto tempo è una strada che devo lasciar perdere. :cry:
e ne devo trovare un altra..
Sto pensado che il file bat e la dir la posiziono in un determinata dir senza che l'utente possa scegliere.esempio C:\Programmi\MIAApplicazione\GMErasmo
e lanciare in vb direttamente il file bat.
che ne pensi?
Va be ma se tu usi il comando App.Path ti torna la path dove si trova il tuo EXE (o progetto se l'hai salvato in qlc cartella), per cui sei sempre dove lo crea, senza essere sicuro che dopo il setup tu perdi le traccie di dove sia il tuo bel programma :)
texerasmo
05-04-2004, 17:01
il pb ce l'ho pechè
Il mio StartIndex.exe deve rimanere dentro il cd e da li mi deve partire l'installazione oppure l'applicazione.
texerasmo
05-04-2004, 17:11
Ho creato un altro .exe che si trova dentro la folder della mia applicazione questo Start.exe fa quello ceh mi aspetto.
Ma solo se lo chiamo con il click del mouse
se invece faccio
Shell ("C:\GMErasmo\Start.exe")
da un altro .exe
non mi funziona :cry:
come mai?
Prova a mettere nhwnd=Shell("C:\GMErasmo\Start.exe") e cmq controlla che sia perfetto la path altrimenti nn la lancia...
nhwnd prende il valore diverso da 0 se è stato lanciato!!
texerasmo
06-04-2004, 09:43
è strano...
per ora ho risolto facendo così
faccio puntare ad un fle bat che è fratello a Start.exe
così funziona.. anche se è una soluzione che non mi piace tanto :(
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.