28 messaggi dal 28 gennaio 2004
Ciao a tutti,
sto cercando di mettere a punto uno script che mi elimini tutti i file da una cartella sul server ad eccezione di alcuni.
Lo script sembra funzionare... con l'unico problema che mi elimina tutti file!!

Fatemi sapere..vi aspetto numerosi...birra per tutti  !!

<%
Dim folder, files, file
Set objFso=Server.CreateObject("scripting.FileSystemObject")

Set folder= objFso.getFolder("d:\inetpub\webs\pippo\public")
Set files=folder.files

for each file in files
Response.write file.name & "<br> "
next
%><%

FOR each file in files
IF NOT file = "file_da_non_eliminare.asp" AND NOT file = "altro_file_da_non_eliminare.asp" THEN
Set objFso=Server.CreateObject("scripting.FileSystemObject")
Set objFile=objFso.GetFile(file)
objFile.Delete
END IF
NEXT
%>
635 messaggi dal 06 settembre 2002
Ciao prova a modificare come segue:

FOR each file in files 
  FileName=file.name 'Nome del file in esame
  
  if FileName<>"file_da_non_eliminare.asp" and FileName<>"altro_file_da_non_eliminare.asp" then
    Set objFso=Server.CreateObject("scripting.FileSystemObject") 
    Set objFile=objFso.GetFile(file) 
    objFile.Delete 
  END IF 
NEXT 


Prima di lanciare il codice, controlla se nella variabile FileName c'è solo il nome file o tutta la path.
Nel Secondo caso, dopo FileName=file.name aggiungi
'-- Prelevo solo il nome file da una Path\file.estensione
FileName=Right(FileName,Len(FileName)-InstrRev(FileName,"\"))


spero di essere stato di aiuto

OJD
28 messaggi dal 28 gennaio 2004
Ciao Ojd,
grazie per il tuo contributo.

Premesso che le mie conoscenze in tema sono limitate...

Nel tuo esempio devo per forza sapere quale file andrò ad eliminare "FileName=file.name 'Nome del file in esame" giusto??, invece io so solo quelli che non devono essere eliminati per pulire la cartella in quanto i files che voglio eliminare vengono uploadati dagli utenti autonomamente.

Ecco perchè forse avrei bisogno di fare un ciclo tipo for next per conoscere quali file ci sono e poi non eliminare quelli che mi servorno.

____________

MESSAGGIO PER I MODERATORI
Mi aiutate....se nò non mi compro il libro :)
scherzo lo ho gia comprato!!
635 messaggi dal 06 settembre 2002
Ciao,

FileName=file.name ti restituisce il nome del file che il server
sta guardando.


<% 
Dim folder, files, file 
Set objFso=Server.CreateObject("scripting.FileSystemObject") 

Set folder= objFso.getFolder("d:\inetpub\webs\pippo\public") 
Set files=folder.files 

for each file in files 
Response.write file.name & "<br> " 
next 
%><% 

FOR each file in files 
FileName=file.name


IF FileName<>"file_da_non_eliminare.asp" AND FileName<>"altro_file_da_non_eliminare.asp" THEN 
'L'istruzione seguente non serve perché hai già impostato objFso
'Set objFso=Server.CreateObject("scripting.FileSystemObject") 
Set objFile=objFso.GetFile(file) 
objFile.Delete 
Set objFile=Nothing  'libero le risorse
END IF 
NEXT 

Set folder=Nothing  'libero le risorse
Set files=Nothing   'libero le risorse
%>



Con FileName=file.name prendi il nome del file che il server trova
a questo punto lo confronti con quelli da non eliminare
if FileName<>"file_da_non_eliminare.asp"

se è diverso lo cancella.

Ti faccio presente che hai già utilizzato qualcosa di simile qualche riga sopra
for each file in files 
Response.write file.name & "<br> " 
next 


Invece del Response.Write, assegno file.name ad una variabile e la confronto,
se diversa (quindi non uguale), elimino il file

OJD
28 messaggi dal 28 gennaio 2004
Grazie Ojd per la tua pazienza. Ho provato anche lo script è funziona correttamente.

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.