|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2008
Messaggi: 323
|
[Vb] verificare l'esistenza di una directory
Vorrei sapere se c'è un modo rapido per verificare l'esistenza di una directory e nel caso in cui la directory non sia presente sul disco, per crearne una.
Ad esempio la mia applicazione va a caricare le immagini nella cartella C:\immagini\ ora, nel caso in cui l'applicazione sia avviata per la prima volta, la cartella potrebbe non essere presente sul disco e l'applicazione va in errore. Pensavo di fare una verifica nel Form Load, ma come gestisco l'errore e la creazione della directory ? |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Jul 2009
Messaggi: 210
|
Premetto che non conosco VB e non sò che versione stai usando, ma per darti una mano mi son fatto una googlata e ho trovato questo per il "directory check" e questo per il make dir.
Spero ti siano di aiuto, ciao!
__________________
La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
Isaac Asimov Ultima modifica di Y3PP4 : 02-09-2009 alle 00:18. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Dir e MkDir se VB6, Directory.Exists e Directory.CreateDirectory se VB.Net.
Ultima modifica di ||ElChE||88 : 02-09-2009 alle 00:26. |
![]() |
![]() |
![]() |
#4 | |
Member
Iscritto dal: Oct 2008
Messaggi: 323
|
Grazie mille! la versione è la 6.0, un pò old ma si tratta di applicazioni semplici e non mi va di cambiare.
Ho dato un occhiata alla funzione Dir e dovrebbe andare... speriamo. Quote:
grazie. ![]() |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Oct 2008
Messaggi: 323
|
La funzione DIR permette di verificare l'esistenza dei file, ma non funziona con le directory...
![]() |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Codice:
Dim percorsoDir As String percorsoDir = "C:\immagini" Dim FSO As Scripting.FileSystemObject Set FSO = New Scripting.FileSystemObject If FSO.FolderExists(percorsoDir) Then MsgBox "Directory già esistente." Else FSO.CreateFolder (percorsoDir) MsgBox "Directory creata." End If ![]() |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Per curiosità (di VB6 ne so veramente poco), che vantaggio c'è nell'usare la MSR invece di funzioni built-in come Dir e MkDir?
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Codice:
Dim percorsoDir As String percorsoDir = "C:\immagini" If Dir(percorsoDir, vbDirectory) <> "" Then MsgBox "Directory già esistente." Else MkDir percorsoDir MsgBox "Directory creata." End If Inoltre Dir e MkDir sono comandi base di VB6 e non necessitano di riferimenti esterni. Se invece vogliamo un accesso al File System più agile e completo, molto meglio il Microsoft Scripting Runtime. La dll del Rif è : C:\WINDOWS\system32\scrrun.dll. Personalmente non ho mai avuto problemi. Inoltre si possono usare molti altri metodi interessanti ( .CopyFile, .CopyFolder, .MoveFile, .MoveFolder, .DeleteFile, .DeleteFolder, .DriveExists, la collection .Drives, metodi per gli stream, e molti altri... ). Insomma, ci si avvicina già di più alla completezza dello spacename My.Computer.FileSystem. di VB.NET... ![]() |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Grazie mille.
![]() |
![]() |
![]() |
![]() |
#10 | |
Member
Iscritto dal: Oct 2008
Messaggi: 323
|
si esatto, per verificare l'esistenza della directory ho utilizzato questo codice:
Quote:
La dimensione del file è 168k è corretto ? |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
La devi semplicemente referenziare da menu Progetto / Riferimenti... |
|
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Oct 2008
Messaggi: 323
|
Nella lista dei componenti non è presente la voce Microsoft Scripting Runtime, la dll scrrun.dll può essere selezionata manualmente all'interno della directory windows32 ma VB genera un messaggio di errore.
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Usi Vista per caso ? |
|
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Oct 2008
Messaggi: 323
|
![]() La voce MS Runtime inizialmente non è presente nell'elenco, ma navigando su windows32 è possibile inserire la voce in elenco. Cliccando su OK, ottengo il messaggio di errore nell'immagine. Uso XP. |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
![]() Quella è la finestra dei controlli aggiuntivi ! ![]() Microsoft Scripting Runtime va semplicemente referenziato aprendo la finestra dei Riferimenti : Menu Progetto / Riferimenti, NON Menu Progetto / Componenti. scrrun.dll è una libreria di funzioni, non un controllo. Se tenti di caricare la libreria come controllo WinForm, ovvio che da errore. ![]() |
|
![]() |
![]() |
![]() |
#16 |
Member
Iscritto dal: Oct 2008
Messaggi: 323
|
errore mio
![]() Non ricevo più errori, sostituirò DIR con le funzioni della libreria anche perchè mette a disposizione più possibilità di controllo su file e cartelle. ![]() grazie ancora. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:38.