Ftp.makedirectory

venerdì 14 maggio 2010 - 19.12

ilario Profilo | Senior Member

ciao

come faccio a creare una sub cartella con il comando ftp

se ad esempio la cartella che devo creare è \foto\gruppo1\mare
se esiste la cartella foto e gruppo1 mi crea la cartella mare altrimenti va in errore

esiste un modo per creare contemporaneamente anche foto e gruppo1 o devo analizzare tutta la stringa

ciao
ilario

luxsor Profilo | Guru

Ciao Ilario,
sinceramente non ho capito bene quale sia il tuo problema.

Tramite questa funzione potrai creare una cartella sul web server.

Public Function Crea_Cartella_FTP(ByVal Server As String, ByVal UserID As String, ByVal Pass As String, ByVal Cartella As String) As Short
Try
Dim reqObj As FtpWebRequest = WebRequest.Create(Server & "//" & Cartella)
'Richiesta FTP
reqObj.Method = WebRequestMethods.Ftp.MakeDirectory

'Credenziali d'accesso
reqObj.Credentials = New NetworkCredential(UserID, Pass)

reqObj.GetResponse()
Return 1

Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Errore: Impossibile creare la Cartella sul Server")
Return 0
End Try
End Function

Fammi sapere


------------------------
Luxsor

ilario Profilo | Senior Member

grazie per il codice della ricerca

il mio problema è creare una nuova cartella inserita in un altra

normalmente con makedirectory crea la directory

se tu passi questa directory /foto te la crea

se tu passi /foto/montagna e la cartella foto non esiste va in errore non ti crea in automatico la cartella foto

quindi se devo creare una cartella di questo tipo /foto/montagna/vinadio/bianco e nero/2008

come faccio

ciao
ilario

luxsor Profilo | Guru

OK.
>quindi se devo creare una cartella di questo tipo /foto/montagna/vinadio/bianco
>e nero/2008
Se sai a priori il percorso completo, io effettuerei uno split sulla stringa e utilizzare la funzione che ti ho dato prima sulla singola cartella.

Così:
Dim StrPath As String = "percorso/windows/system"
Dim SplitPath() As String = StrPath.Split("/")

For Each N In SplitPath
'qui gestisci la funzione
MsgBox(N)
Next

Fammi sapere


------------------------
Luxsor

ilario Profilo | Senior Member

ho preso spunto, ma la cosa era un pò più complicata , perche prima di tutto per creare una cartella gli devi passare l'intera stringa quindi non basta un semplice split, ma devi ricomporre le varie sottostringhe

per il momento ho risolto così e funziona,

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

mi potresti controllare per cortesia se il codice è pulito o lo si può migliarare

pensi sia possibile fare un ciclo al contrario

qui parto dalla prima cartella ,controllo se esiste la sottocartella, in caso negativo la creo, incaso affermativo controllo la sottocartella della sottocartella e così via

volevo invece partire dalla sottocartella più bassa e risalire fino a quando si trova una cartella esistente e da lì creare tutte le sottocartelle mancanti
così facendo non le devo controllare tutte ma solo le ultime

spero di essermi spiegato

ciao
Ilario

luxsor Profilo | Guru

>mi potresti controllare per cortesia se il codice è pulito o
>lo si può migliarare
Perfetto.

>volevo invece partire dalla sottocartella più bassa e risalire
>fino a quando si trova una cartella esistente e da lì creare
>tutte le sottocartelle mancanti
>così facendo non le devo controllare tutte ma solo le ultime



Mi puoi fare un esempio?


------------------------
Luxsor

ilario Profilo | Senior Member

>mi potresti controllare per cortesia se il codice è pulito o
>lo si può migliarare
Perfetto.

grazie


allora

esempio la cartella che devo inserire è immagini/montagna/vinadio/2008/bw

con il codice che ho scritto

mi parte a controllare se esiste la cartella Immagini se la trova controlla Montagna , se non la trova la crea e cosi fino ad arrivare all'ultima

qui volevo procedere al contrario
ricerca la cartella partendo da bw, se non esiste ricerca la cartella 2008 se non esiste ricerca la cartella vinadio, a questo punto esiste e allora crea solo la cartella 2008 e bw

in questo modo fa solo due controlli sulle cartelle (due chiamate ftp) anzichè 4/5 come esempio precedente

ciao
ilario

luxsor Profilo | Guru

Io ti consiglio di lasciarlo così comè.

Se proprio vuoi farlo al contrario, o devi leggere la stringa da destra a sinistra e esegure tu lo split fino al "/" o ti devi ricreare un altro array successivo al primo cioè il primo esegue lo split da sinistra a destra,
mentre nell'altro effettui l'inserimento al contrario (il primo letto deve essere l'ultimo).



------------------------
Luxsor
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5