' Il seguente script è un esempio di come si possono elaborare i file (Excel in questo caso) contenuti in una cartella FTP, con cancellazione dopo l'elaborazione
dim ftpuser as string=<utente>
dim ftppw as string=<password>
dim folder as string="ftp://xx.xx.xx.xx/cartella"
' Legge la directory
dim ftpRequest as System.Net.FtpWebRequest = System.Net.WebRequest.Create(folder)
ftpRequest.Credentials =new System.Net.NetworkCredential(ftpuser,ftppw)
ftpRequest.Method = System.Net.WebRequestMethods.Ftp.ListDirectory
Dim response as System.Net.FtpWebResponse = ftpRequest.GetResponse()
dim streamReader as System.Io.StreamReader = new System.Io.StreamReader(response.GetResponseStream())
' scarica l'elenco dei file
dim files as new DBArray()
dim fn as string = streamReader.ReadLine()
while not empty(fn)
files.add(fn)
fn = streamReader.ReadLine()
End While
streamReader.Close()
' esamina tutti i file
dim i,j as integer
for i=1 to files.size
if lower(system.Io.Path.getextension(files(i)))=".xlsx"
' è un file Excel: lo scarica
dim FTP as System.Net.WebClient
FTP = new System.Net.WebClient
FTP.Credentials = new System.Net.NetworkCredential (ftpuser,ftppw)
Dim fileData As Byte() = FTP.DownloadData(folder+"/"+files(i))
fn=form.Getsession().GetLocalTempFileName(".xlsx")
Dim f As System.io.FileStream = System.IO.File.Create(fn)
f.Write(fileData, 0, fileData.Length)
f.Close()
Dim x as New qwexcel()
x.Open(fn)
x.SetActiveWorksheet(x.GetWorkbook.Worksheets(0).Name)
For j = 2 To 100000
dim idGestionale as string=x.ReadString(j,16)
dim esito as string=x.ReadString(j,6)
dim errore as string=x.ReadString(j,7)
if not empty(idGestionale)
form.FindControl("MultilineTextField1").value+=idGestionale+": "+esito+if(not empty(errore)," "+errore,"")+vbCr
Else
Exit For
End If
Next
x.Close()
' elimina il file
ftpRequest = System.Net.WebRequest.Create(folder+"/"+files(i))
ftpRequest.Method = System.Net.WebRequestMethods.Ftp.DeleteFile
ftpRequest.Credentials = new System.Net.NetworkCredential (ftpuser,ftppw)
response = ftpRequest.GetResponse()
response.Close()
End If
next