Ciao,
non capisco cosa vuoi ottenere, prima dici rinominare un file, non è possibile come già detto se usi
MoveFile
il file verrà cancellato dalla cartella dove si trova e spostato in un'altra, se fatto sulla stessa folder il file originale verrà cancellato e sustituito con quello nuovo
Con
CopyFile verrà fatta una copia dello stesso file con il nome scelto anche se si trova nella stessa folder.
Codice:
<%
Dim fso, cartella, file
set fso = Server.CreateObject("scripting.FileSystemObject")
set cartella = fso.GetFolder("D:\sitosmi\ren\mdb\immagini\")
filePath = Server.MapPath("mdb/immagini/" )
for each file in cartella.files
%>
Codice:
<%
Dim f, File, Folder
Set f = CreateObject("Scripting.FileSystemObject")
Set Folder = f.GetFolder(Server.MapPath("cartella"))
For Each File in Folder.Files
response.write File.Name &"<br>"
Next
Set Folder = nothing
Set f = nothing
%>
L'struzione For Each...Next viene utilizzata per ripetere l'esecuzione di ciascun membro di un gruppo, in questo caso per scorrere tutti i membri della collection.
Files restituisce una collection di tutti gli oggetti file contenuti nella cartella. Inserisco la variabile File dopo il ciclo For Each, in Folder.Files legge i file contenuti nella cartella. Next deve essere inserito dopo la variabile che si occuperà di leggere il nome dei file Name.
response.write File.Name &"<br>"
Next
Set Folder = nothing
Set f = nothing
Libero le risorse
Questo ti serve per leggere tutti i file di una determinata cartella.
Per quanto scritto prima:
Codice:
<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")
fso.MoveFile Server.MapPath("cartella/vecchio_file.jpg"), Server.MapPath("cartella/nuovo_file.jpg")
Set fso = Nothing
%>
Basta sostituire MoveFile con CopyFile, il metodo CopyFile accetta un'altro parametro
overwrite, si tratta di un valore booleano True o False, di default se non dichiarato è True, il file viene sempre sovrascritto ad ogni richiesta, se dichiarato False non permette la sovrascrittura.
Per copiare in set di file si usa il carattere jolly
CopyFile "c:\cartella\*.html", "c:\cartella_nuova\"
Tutti i file con estenzione .html verrano copiati in
cartella_nuova
Modifica questo, è quello che utilizzo per creare cartelle, cancellare e creare file, spostare file ecc...
Codice:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
PUBLIC FUNCTION muoviFile(fileName)
Dim objFso
Dim return
on error resume next : err = 0
IF fileName = "" OR fileName = Null THEN
return = False
ELSE
Set objFso = Server.CreateObject("Scripting.FileSystemObject")
objFso.CopyFile(Server.MapPath("cartella/"&fileName)), Server.MapPath("cartella_destinazione/"&Request.Form("filenuovoName"))&""
IF (err = 0) THEN
return = True
ELSEIF (err <> 0) THEN
return = False
END IF
Set objFso = Nothing
END IF
Response.Write("NUMERO ERRORE: "&err.number&"<br>DESCRIZIONE ERRORE: "&err.description&"<br><br>"&err.Source&"<br><br>")
err = 0 : err.clear()
muoviFile = return
END FUNCTION
Dim page
page = Request.QueryString("page")
IF page = "create" THEN
dim pippo
pippo=muoviFile(Request.Form("fileName"))
if pippo = False then
Response.Write("File non Copiato " & Request.Form("filenuovoName"))
elseif pippo = True then
Response.Write("File Copiato: " & Request.Form("fileName") & " con: " & Request.Form("filenuovoName"))
end if
ELSE
%>
<HTML>
<HEAD>
<TITLE>Form Copia File</TITLE>
</HEAD>
<BODY>
<form method="post" action="copiafile.asp?page=create">
<input type="text" name="fileName"> <!-- file da copiare -->
<input type="text" name="filenuovoName"> <!-- nuovo file -->
<input type="submit" value="Copa File">
</form>
</BODY>
</HTML>
<%
END IF
%>
Ti restituisce errore se si è verificato un errore, il numero dell'errore e il source.
Se l'errore l'errore è <> da 0 True ti restituisce:
NUMERO ERRORE: 0
DESCRIZIONE ERRORE: (vuoto nessua descrizione, errore non generato).
File Copiato: pippo.jpg con: pluto.jpg (ES)
Per il false, non permettere la sovrascrittura di un file:
Codice:
objFso.CopyFile(Server.MapPath("cartella/"&fileName)), Server.MapPath("cartella_destinazione/"&Request.Form("filenuovoName"))&"",False
Vedi se puoi addattarlo per le tue esigenze.
Valeria.