Copia e compressione di un file in ASP

Vediamo come Copiare e Comprimere un file direttamente da una pagina ASP.

La pagina ASP per prima cosa elencherà tutti i file di una determinata cartella la quale conterrà i file sorgente.

clip_image002

Dopo aver selezionato il file che vogliamo copiare e comprimere si clicca sul pultante Copia/Sposta

A questo punto possiamo:

1) Utilizzare il metodo ScriptFileSystem di ASP per la copia/sposta e la libreria   XZip (freeware) per la compressione.

2) un secondo metodo potrebbe essere quello di lanciare un batch

 

Soluzione 1 – Utilizzo della libreria XZip Freeware per la compressione del file

Scarichiamo la libreria XZip dal sito ufficiale – http://xstandard.com/en/

Procediamo con l’installazione come indicato sul sito:

1. Move the dll to a directory like: C:\Program Files\XStandard\Bin\.

2. Open a command prompt and cd to the directory where the dll is located.

3. Type regsvr32 XZip.dll

4. Grant "Read & Execute" file permissions on this dll to Everyone.

clip_image004

Ed ecco il codice completo della nostra pagina di esempio:

 
<%
 
Dim SourceFolder 
 
dim filename
 
SourceFolder = "c:\temp" 
 
DesinationFolder = "c:\temp\move"
 
%>
 
<HTML>
 
<HEAD>
 
<LINK rel="stylesheet" type="text/css" href="./WCR.css">
 
<TITLE>Batch</TITLE>
 
</HEAD>
 
<body>
 
<font face="Arial">
 
<span style="font-size:14pt">Batch - sposta file in cartella</span>
 
<hr>
 
<p style="font-size:10pt">Elenco file cartella sorgente:</span>
 
<form action="batch.asp?par=move" method="post">
 
<table cellspacing="1" cellpadding="5" border="1">
 
<tr><td>
 
<%
 
' Dichiara le variabili necessarie 
 
Dim objFso, objFolder, objFiles 
 
Dim strFolder, strFile, strPath, strExt 
 
' Definisci il percorso della cartella da leggere 
 
strPath = SourceFolder
 
strExt = ".csv" 
 
' Crea gli oggetti FSO necessari 
 
Set objFso = Server.createObject("Scripting.FileSystemObject") 
 
set objFolder=objFso.GetFolder(strPath)
 
Set objFiles = objFolder.Files 
 
' Scorri tutti i file nella cartella 
 
for each strFile in objFiles 
 
' Controlla l'estensione 
 
if Right(strFile.name, Len(strExt)) = strExt then 
 
response.write("<input type='radio' name='group1' value='" & strFile.name & "'>" & strFile.name & "<br>")
 
end if 
 
next 
 
%>
 
</td></tr>
 
<td align="center"><input type="submit" value="Copia/Sposta File" name="btnSubmit"></td>
 
</tr>
 
</table>
 
</form>
 
<p>
 
<%
 
If Request("par")="move" Then
 
filename = request("group1")
 
'objFso.CopyFile sorgente,destinazione[,sovrascrivi]
 
' Creo l'oggetto
 
Dim objZip
 
Set objZip = Server.CreateObject("XStandard.Zip")
 
' Eseguo la prima operazione di compressione..
 
' ..e contestualmente creo l'archivio
 
objZip.Pack SourceFolder & "\" & filename, DesinationFolder & "\" & filename & ".zip"
 
' Chiudo
 
Set objZip = Nothing
 
end if
 
' Distruggi oggetti e libera risorse 
 
Set objFso = Nothing 
 
Set objFolder = Nothing 
 
Set objFiles = Nothing 
 
%>
 
</p>
 
</body>
 
</HTML>

http://www.mrwebmaster.it/asp/articoli/gestire-archivi-compressi-zip-asp_772.html