Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di mahimo
    Registrato dal
    Feb 2003
    Messaggi
    251

    copiare file & ciclo IF

    sto facendo un pò di prove sulle operazioni con i file ed il ciclo IF, in particolare su come copiare un file in una specifica cartella.

    le "verifiche" che io vorrei fare, prima di copiare il file sono:

    1) esiste il file da copiare?
    no --> messaggio di errore
    si ---> 2) esiste la cartella in cui si vuole copiare il file?
    no --> messaggio di errore
    si ---> 3) nella cartella in cui devo copiare il file esiste gia un file con quel nome?
    no --> Ok, copia il file
    si ---> messaggio di errore

    avrei già una mezza idea su come strutturare lo script su più pagine, ma penso che questo lavoro si possa fare in una sola pagina...

    consigli o metodi alternativi?

  2. #2
    codice:
    <%
    fileToCopy = "pippo.txt"
    fileToCopyExists = true
    folderWhereToCopy = "cartella"
    folderWhereToCopyExists = true
    fileToCopyIsInDestination = false
    
    	set fso = server.createObject("scripting.fileSystemObject")
    	
    		if fso.fileExists(server.mapPath(fileToCopy)) = false then
    		response.write "Il file " & fileToCopy & " non eisiste!"
    		fileToCopyExists = false
    		end if
    		
    		if fileToCopyExists then
    			if fso.folderExists(server.mapPath(folderWhereToCopy)) = false then
    			response.write "La cartella " & folderWhereToCopy & " non eisiste!"
    			folderWhereToCopyExists = false
    			end if
    		end if
    		
    		if folderWhereToCopyExists then
    			if fso.fileExists(server.mapPath(folderWhereToCopy & "\" & fileToCopy)) = true then
    			response.write "Nella cartella " & folderWhereToCopy & " esiste gi&agrave; un file di nome " & fileToCopy & "!"
    			fileToCopyIsInDestination = true
    			end if
    		end if
    		
    		if not fileToCopyIsInDestination then
    		fso.copyFile server.mapPath(fileToCopy), server.mapPath(folderWhereToCopy & "\" & fileToCopy)
    		response.write "Il file " & fileToCopy & " &egrave; stato copiato nella cartella " & folderWhereToCopy & "."
    		end if
    	
    	set fso = nothing
    %>

  3. #3
    Utente di HTML.it L'avatar di mahimo
    Registrato dal
    Feb 2003
    Messaggi
    251
    azz... mi accontentavo anche solo di qualche dritta
    ... effettivamente non ci avevo ancora pensato a creare inizialmente le variabili, e poi "cambiarne" il valore durante il ciclo IF

    ti ringrazio, con questo metodo mi stai chiarendo parecchie cose

  4. #4
    Utente di HTML.it L'avatar di mahimo
    Registrato dal
    Feb 2003
    Messaggi
    251

    riapro il thread...

    ho provato a ricreare questo programmino per copiare i file utilizzando le funzioni:
    CheckFileDaCopiare -> controlla se esiste il file da copiare
    CheckCartellaDestinazione -> controlla se esiste la cartella di destinazione
    CheckFileInDestinazione -> controlla che non ci sia già, nella cartella di destinazione, un file con lo stesso nome di quello da copiare

    in libreria.asp
    es: Funzione CheckFileDaCopiare
    codice:
    function CheckFileDaCopiare
    set fso = server.createObject("scripting.fileSystemObject")
    if fso.fileExists(server.mapPath(FileDaCopiare)) then
    CheckFileDaCopiare = 1 
    else
    CheckFileDaCopiare = 0
    end if 
    end function
    in copia.asp
    come prima cosa dichiaro le variabili
    codice:
    FileDaCopiare = "elenco.txt"
    CartellaDestinazione = Server.MapPath("backup")
    poi eseguo un controllo sulle funzioni, assegno valore true se la condizione è vera e poi stampo a video
    codice:
    if (CheckFileDaCopiare) then
    	FileDaCopiare = true
    	response.write "Il file da copiare esiste
    
    "
    	else
    	response.write "Il file da copiare NON esiste
    
    "
    end if
    il controllo avviene per tutte e tre le funzioni e il risultato che ho è una cosa del genere:
    - Il file da copiare esiste
    - La cartella in cui copiare esiste.
    - Nella cartella di destinazione esiste già un file con il nome: elenco.txt
    fino a qua tutto ok.
    ora, dopo avere eseguito tutti i controlli posso finalmente copiare il file
    dovrei impostare il ciclo così:

    SOLO SE il file esiste, la cartella di destinazione esiste e nella cartella di destinazione non c'è già un file con lo stesso nome di quello da copiare allora
    copia il file e restituisci il messaggio "backup eseguito"
    altrimenti restituisci il messaggio di errore "Il file da copiare NON esiste", oppure "La cartella in cui copiare esiste", oppure "Nella cartella di destinazione esiste già un file con il nome: elenco.txt."

    ho provato a scriverlo in questo modo ma non penso che la sintassi sia proprio giusta, dato che il risultato non è quello voluto....
    codice:
    if (CheckFileDaCopiare) then
    if (CheckCartellaDestinazione) then
    if not (CheckFileInDestinazione) then
    	response.write "
    
    É quindi possibile copiare il file nella cartella di destinazione"
    	'ovviamente qui poi ci andrebbero le istruzioni per copiare il file
    	else
    	response.write "
    
    NON è possibile copiare il file nella cartella di destinazione"
    end if
    end if
    end if
    qualche consiglio? secondo voi dov'è che sbaglio? :master:

  5. #5
    Utente di HTML.it L'avatar di mahimo
    Registrato dal
    Feb 2003
    Messaggi
    251
    up

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.