Ciao a tutti,
sto cercando d'integrare uno script ASP.NET per il caricamento e lo scopattamento di file ZIP in upload, ora ho trovato questo :
Codice PHP:
<%@ Page Language="VB" Trace="false" Debug="false" %>
<%@ 
Register TagPrefix="ic" Namespace="ICSharpCode.SharpZipLib" Assembly="ICSharpCode.SharpZipLib, Version=0.85.1.271, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, Safe=true" %>
<%@ 
import Namespace="ICSharpCode.SharpZipLib.Zip" %>
<%@ 
import Namespace="ICSharpCode.SharpZipLib.Checksums" %>
<%@ 
import Namespace="System.IO" %>
<
script runat="server">

    Public 
Sub scompatta(ByVal cartella As String_
                             Optional ByVal zipFic 
As String ""_
                             Optional ByVal elimina 
As Boolean False_
                             Optional ByVal rinomina 
As Boolean False)
    
         
Dim flag as boolean 'gestisce il corretto scompattamento
         dim fileName as string
         dim elencofile,directoryName,serverFolder as string '
stringa di testo con all'interno i files scompattati
    
         If Not zipFic.ToLower.EndsWith(".zip") Then
             zipFic = Directory.GetFiles(zipFic, "*.zip")(0)
         End If
         '
         
Dim z As New ZipInputStream(File.OpenRead(zipFic))
         
Dim theEntry As ZipEntry
         
'
    Do
             theEntry = z.GetNextEntry()
      If Not theEntry Is Nothing Then '
if 1
             directoryName 
Path.GetDirectoryName(theEntry.Name)
            
' fileName = Path.GetFileName(theEntry.Name)
             serverFolder = cartella
        if (directoryName<> "") then '
se lo zip  contiene cartelle
                Directory
.CreateDirectory(serverFolder +"\"+directoryName)
                'response.write("
creata directory"+serverFolder +"\"+directoryName+"
")
                 fileName  = directoryName & "
\" & Path.GetFileName(theEntry.Name)
        else
                 fileName  =  Path.GetFileName(theEntry.Name)
        end if
                 elencofile +=fileName +"
"
        if (Path.GetFileName(theEntry.Name)<> "") Then 'if 2 serve perchè vengono prese in considerazione anche le sole cartelle
                 
                 Dim streamWriter As FileStream
    
                 Try
                      streamWriter = File.Create(serverFolder+"
\"+fileName)
                 Catch ex As DirectoryNotFoundException
                     lblZIP.forecolor=drawing.color.fromname("
Red")
                     lblZIP.text="
Errore!"
                     flag=true
                 End Try
                 '
                 Dim size As Integer
                 Dim data(2048) As Byte
                 Do
                     size = z.Read(data, 0, data.Length)
                     If (size > 0) Then
                         streamWriter.Write(data, 0, size)
                     Else
                         Exit Do
                     End If
                 Loop
                 streamWriter.Close()
        End If'if 2
                 
             Else' if 1
                 Exit Do
             End If 'if 1
         Loop
         z.Close()
    
         if not flag then
             lblZIP.forecolor=drawing.color.fromname("
Green")
             lblZIP.text= "
Lista file scompattati:
"+elencofile
         end if
         ' elimina se richiesto il file zip: default --> non elimina
    
         If elimina Then
             File.Delete(zipFic)
         End If
         ' rinomina se richiesto
         If rinomina Then
             try
                 File.delete (zipFic & "
.bak")
             finally
                 File.Copy(zipFic, zipFic & "
.bak")
             end try
         End If
    
    End Sub
    
    Sub BtnUp_Click(sender As Object, e As EventArgs)
        dim strFile as string
        strFile = inputFile.PostedFile.FileName
        'Ricavo il nome del file SENZA percorso.
        Dim strNomeFile as string
        strNomeFile = System.IO.Path.GetFileName(strFile)
        dim strPercorsoFileUpload,strPercorsoFileUnzip as string
        'QUI occorre specificare il path dove viene inviato lo zip
        'NOTA: va reso dinamico
       strPercorsoFileUpload =server.mappath("
/public/temp")
        'QUI occorre specificare il path dove vengono estratti i file contenuti nello zip
        'NOTA: va reso dinamico
       strPercorsoFileUnzip =server.mappath("
/public/temp/unzip")
         
        
        'Effettuo UPLOAD
        inputFile.PostedFile.SaveAs( strPercorsoFileUpload & "
\" & strNomeFile)
        'scompatta lo zip
        scompatta(strPercorsoFileUnzip,strPercorsoFileUpload & "
\" & strNomeFile,true,false)
    End Sub

</script>
<html>
<head>
    <title>Upload Files zippati</title>
</head>
<body>
    <form runat="
server">
        <table width="
100%" align="center">
            <tbody>
                <tr>
                    <td align="
middle">
                        


                            E'
                            possibile spedire al server delle cartelle compresse (file zip).
                            

                            

                            Scegli
                            il file
                            <input id="
inputFile" type="file" runat="server" />
                            

                            

                            <input id="
BtnUp" type="button" value="Invia al server" runat="server" onserverclick="BtnUp_Click" />
                        </p>
                    </td>
                </tr>
            </tbody>
        </table>
        


        </p>
        <p align="
center">
            <asp:Label id="
lblZIP" runat="server" font-names="Verdana" font-size="XX-Small" font-bold="True"></asp:Label>
            

        </p>
    </form>
</body>
</html> 
ora il problema è qui:

strPercorsoFileUpload =server.mappath("/public/temp")
'QUI occorre specificare il path dove vengono estratti i file contenuti nello zip
'NOTA: va reso dinamico
strPercorsoFileUnzip =server.mappath("/public/temp/unzip")
se provo a fare questo: strPercorsoFileUpload =server.mappath("/public/temp" & session("cartella_dinamica")) semplicemente la variabile session viene ignorata!!!
Ho provato fatto test e la variabile session in questione negli altri casi restituisce il percorso qui nulla!!! :master:

Forse è un problema di sintassi o cosa?