Brothers Inserito: 2 agosto 2006 Segnala Inserito: 2 agosto 2006 Salve a tuttiera tanto che non rientravo nel forum, e l'ho trovato tutto cambiato, anche più bello.Però non ho capito bene dove inserire domande su Vb6, nell'incertezza posto la mia quì.Ho una funzioneCreate_Folder che mi provoca dei problemi quando cerco di creare un percorso con più di 2 cartelle contemporaneamente, e a volte anche con una soltanto se la Path contiene più cartelle già esistenti.Codice:--------------------------------------------------------Private Sub Create_Folder() On Error Resume NextDim fso As New FileSystemObject, fldr As FolderDim Testo As StringDim Posizione As IntegerDim Inizio As IntegerTesto = txtPathInizio = 4Posizione = InStr(Inizio, Testo, "\")If Posizione > 2 Then Testo = Mid(Testo, 1, Posizione - 1) Set fldr = fso.CreateFolder(Testo) MsgBox "Cartella creata: ", vbExclamation & fldr.Name Set fldr = fso.CreateFolder(txtPath) MsgBox "Cartella creata: ", vbExclamation & fldr.Name End Sub--------------------------------------------------------L'ho scritta così per provare a risolvere il problema sfruttando l'erroree cercando di far creare la cartella, prima con l'ultima parte della Path cioè con il nome della cartella e poi con l'intera Path.Ma mi sa che ho creato un guazzabuglio e mi sono perso.Qualcuno mi aiuta?Ciao
lucios Inserita: 2 agosto 2006 Segnala Inserita: 2 agosto 2006 Ma che errore ti da?In "testo" cosa c'è scritto quando non ti funziona?Ciao
Brothers Inserita: 2 agosto 2006 Autore Segnala Inserita: 2 agosto 2006 CiaoNo non posso vedere l'errore perchè quando lancio l'applicazione, la stessa per funzionare abbisogna dei file e cartelle in questione, e non trovandoli s'impianta.Ma per esempio se decido di creare il percorso:C:\Cartella1\Cartella2\Fileesempio.txtse Cartella1 e Cartella2 non esistono le crea e ci copia il file, ma se aggiungo al percorso:C:\Cartella1\Cartella2\Cartella3\Fileesempio.txtsi impianta e si impianta pure se C:\Cartella1 gia esiste.azzCiao
lucios Inserita: 3 agosto 2006 Segnala Inserita: 3 agosto 2006 Non avevo capito! Penso sia normale che si pianti, in effetti nella descrizione dei metodi del FileSystemObject è specificato che CreateFolder dia errore se la cartella è già esistente.Per risolvere il problema, secondo me, devi fare un controllo sulle cartelle di nodo superiore per vedere se esistono, quindi posizionarti con il path nel punto in cui vuoi creare la cartella.Ciao
Brothers Inserita: 4 agosto 2006 Autore Segnala Inserita: 4 agosto 2006 Incredibile Holmes.......!!! Elementare Watson, bastava leggere più attentamente le MSDN, o seguire prima le indicazioni del nostro amico iberico(sennò col cavolo) ;le posto cosi evito scervellamenti ad altri:---------------------------Funzioni------------------------------------------Crea Cartelle------------------------------------------Private Function CreateFolder(ByVal pFolder As String) As Boolean Dim sFolder As String, aFolder() As String Dim iFolder As Integer, sCreatedFolder As String sFolder = Trim(pFolder) If sFolder = "" Then Exit Function If Right(sFolder, 1) = "\" Then sFolder = Left(sFolder, Len(sFolder) - 1) End If aFolder = Split(sFolder, "\") For iFolder = LBound(aFolder) To UBound(aFolder) If sCreatedFolder = "" Then sCreatedFolder = aFolder(iFolder) Else sCreatedFolder = sCreatedFolder & "\" & aFolder(iFolder) End If If Not FolderExists(sCreatedFolder) Then MkDir sCreatedFolder End If Next iFolder CreateFolder = TrueExit FunctionErrCreateFolder: CreateFolder = FalseEnd Function------------------------------------------Controllo se esiste------------------------------------------Private Function FolderExists(ByRef sFolder As String) As Boolean Dim sResult As String On Error Resume Next sResult = Dir(sFolder, vbDirectory) On Error GoTo 0 FolderExists = sResult <> ""End Function------------------------------------------Richiamo con messaggio di errore------------------------------------------Private Sub cmdCreaCartelle_Click() If CreateFolder(TxtPercorso.Text) Then MsgBox "Cartella\e creata\e con successo", vbExclamation, "Folder Created" Else MsgBox "Errore Comando Fallito", vbCritical, "Failed" End IfEnd Sub------------------------------------------La (parola)chiave del mistero era MkDir, e il controllo sull'esistenza, grazie LuciosCiao
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora