Caricare files in uno zip all’interno dei documenti collegati

' questo script è da inserire all'interno della procedura postback di UploadFile
' si occupa di raccogliere i files caricati all'interno di uno zip, e di inserirli nei documenti collegati

If ParameterAll.Size > 0 Then

    Dim CODDOC As String = String2Array(form.GetCodDoc(), "|")(1) & "|" & String2Array(form.GetCodDoc(), "|")(2) & "|" & String2Array(form.GetCodDoc(), "|")(3) & "|"


    Dim i As Integer
    Dim files As New DBArray
    Dim filenames As New DBArray



    ' parameterAll è la lista di parametri
    ' ogni elemento dispari è un file, mentre ogni elemento pari è il nome del file all'indice precedente
    For i = 1 To ParameterAll.size Step 2
        files.Add(ParameterAll(i))
        filenames.Add(ParameterAll(i + 1))
    Next



    Dim zip As New qwlib.Zipper
    Dim path As String ' percorso del file da caricare in QualiWare
    Dim nomefile As String ' nome definitivo che il file avrà in QualiWare

    Dim errmsg As String = ""
    Dim errore As Boolean = False




    If ParameterAll.size = 2 Then
        ' il file caricato è uno solo, quindi volendo si può evitare di creare uno zip
        path = files(1)
        nomefile = filenames(1)
    Else
        path = funique(Q95_PATH_TEMP & "\" & "????????.ZIP") ' genera un nome unico di 8 caratteri per lo zip
        nomefile = Today().ToString("dd-MM-yyyy") & ".zip" ' crea il nome dello zip. in questo esempio viene utilizzata la data odierna

        Try
            zip.GenerateZipFile(path, files, filenames)
        Catch ex As System.Exception
            errore = True
            Form.Alert(ex.Message & vbCrLf & vbCrLf & ex.StackTrace, "ERROR")
        End Try

    End If



    If Not errore Then
        Link_Doc(Form.GetDataBase(), "DW", CODDOC, "**", path, 5, Nothing, errmsg, nomefile)

        If Not String.IsNullOrEmpty(errmsg) Then
            Form.Alert("It was not possible to insert the File in the Linked Documents : " & nomefile & vbCrLf & "Errore: " & vbCrLf & errmsg)
        End If

    End If

    Form.RefreshLinkDoc()
End If