319 messaggi dal 05 agosto 2005
Ciao Ragazzi,

Ho implementato una un semplice funzione che mi crea una directory nel mio webserver e salva il path nel db:



patta = "~/Press_Stuff/Article/" + "Marco"
Try

If Not Directory.Exists(patta) Then
Directory.CreateDirectory(Server.MapPath(patta))
End If


Adesso in un'altra webform ho una gridview con bottone delete che mi cancella il record da db correttemente ma non la cartella creata nel webserver:

Ho utilizzato il path che recupero dal db e lo salvo nella stringa "patta":

patta = _Image_URL.Substring(0, Len(_Image_URL) - Len(_Image_URL.Substring(_Image_URL.LastIndexOf("/"))))

If Directory.Exists(patta) = True Then

Directory.Delete(Server.MapPath(patta), True)
Else

'null

End If

Praticamente salta sempre all'ELSE come se il path non esistesse. Se invece tolgo l'IF in questo modo:

Directory.Delete(Server.MapPath(patta), True)

mi cancella la cartella ma poi mi dà un'errore:

Could not find a part of the path 'C:\Documents and Settings\Marco\Desktop\14_10_2008\Press_Stuff\Article\1'.

Come mai?

Grazie

Marco
le cose son due:
o il percorso è sbagliato
o l'utente con cui gira l'applicazione ASP.NET non ha i permessi di scrittura (e di conseguenza cancellazione) su tale cartella

Marchi Giuseppe
http://www.peppedotnet.it
319 messaggi dal 05 agosto 2005
Giuseppe,

Spiegami allora 2 cose semplici:

Se l'utente con cui gira l'applicazione ASP.NET non ha i permessi di scrittura, mi spieghi come sono in grado di creare la cartella senza problemi?

Il percorso è quello che è ststo memorizzato in fase di crezione:

patta = "~/Press_Stuff/Article/" + "Marco"

Come può essere sbagliato?

Marco
per prima cosa dovresti usare il Server.MapPath anche in

Directory.Exists(patta)

invece lo fai solo dopo

patta = "~/Press_Stuff/Article/" + "Marco" 
Try 

If Not Directory.Exists(patta) Then 
Directory.CreateDirectory(Server.MapPath(patta)) 
End If


ciao marco
Modificato da nostromo il 15 ottobre 2008 17.09 -

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
319 messaggi dal 05 agosto 2005
Ciao Marco,

Comunque, anche toglindo l'IF mi va in errore. Adesso ho solo:

Dim patta As String

patta = _Image_URL.Substring(0, Len(_Image_URL) - Len(_Image_URL.Substring(_Image_URL.LastIndexOf("/"))))


Directory.Delete(Server.MapPath(Server.MapPath(patta)), True)

GridView1.DataBind()

E questo è l'errore che ho:

'C:\Documents and Settings\Marco\Desktop\14_10_2008\Press_Stuff\Article\1' is not a valid virtual path.
adesso l'errore è diverso non passi un percorso virtuale al metodo MapPath.

io ti consiglio di seguire con il debug ogni passo del codice

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.