Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666

    Creazione cartelle con FSO, gestione codici di errore

    Ciao a tutti, ho già chiesto aiuto per la creazione di una cartella sul server e ora è tutto ok, ma vorrei gestire i codici di errore.

    In questo modo se si cerca di creare una cartella già esistente si riceve un avvertimento o si viene reindirizzati ad un'altra pagina che spiega il motivo per il quale la cartella non è stata creata.

    Ma come fare?

    Questo è lo script che ho utilizzato:

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%
    PUBLIC FUNCTION createDir(dirName)
    	Dim objFso
    	Dim return
    	on error resume next : err = 0
    	IF dirName = "" OR dirName = Null THEN
    		return = False
    	ELSE
    		Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    		objFso.CreateFolder(Server.MapPath("/public/"&DirName))
    		IF (err = 0) THEN
    			return = True
    		ELSEIF (err <> 0) THEN
    			return = False
    		END IF
    		Set objFso = Nothing
    	END IF
    	'Se volete sapere perchè da il risultato FALSE allora togliete apice che sta all'inizio del prossimo rigo.
    	'Response.Write("NUMERO ERRORE: "&err.number&"
    DESCRIZIONE ERRORE: "&err.description&"
    
    ")
    	err = 0 : err.clear()
    	createDir = return
    END FUNCTION
    Dim page
    page = Request.QueryString("page")
    IF page = "create" THEN
    	Response.Write("Il risultato: " & createDir(Request.Form("Name")) & "   (FALSE=Cartella non creata; TRUE=Cartella creata)")
    ELSE
    %>
    <HTML>
    	<HEAD>
    		<TITLE>Form creazione directory</TITLE>
    	</HEAD>
    	
    	<BODY>
    	<form method="post" action="createDir.asp?page=create">
    		<input type="text" name="Name">
    		<input type="submit" value="Crea Cartella">
    	</form>
    	</BODY>
    </HTML>
    <%
    END IF
    %>
    Grazie mille!
    AltF4

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%
    PUBLIC FUNCTION createDir(dirName)
    	Dim objFso
    	Dim return
    	on error resume next : err = 0
    	IF dirName = "" OR dirName = Null THEN
    		return = False
    	ELSE
    		Set objFso = Server.CreateObject("Scripting.FileSystemObject")
    		objFso.CreateFolder(Server.MapPath("/public/"&DirName))
    		IF (err = 0) THEN
    			return = True
    		ELSEIF (err <> 0) THEN
    			return = False
    		END IF
    		Set objFso = Nothing
    	END IF
    	'Se volete sapere perchè da il risultato FALSE allora togliete apice che sta all'inizio del prossimo rigo.
    	'Response.Write("NUMERO ERRORE: "&err.number&"
    DESCRIZIONE ERRORE: "&err.description&"
    
    ")
    	err = 0 : err.clear()
    	createDir = return
    END FUNCTION
    Dim page
    page = Request.QueryString("page")
    IF page = "create" THEN
    
    dim pippo
    pippo=createDir(Request.Form("Name"))
    
    if pippo = False then
    Response.Write("Cartella non creata")
    
    elseif pippo = True then
    Response.Write("Cartella creata")
    end if
    
    ELSE
    %>
    <HTML>
    	<HEAD>
    		<TITLE>Form creazione directory</TITLE>
    	</HEAD>
    	
    	<BODY>
    	<form method="post" action="createDir.asp?page=create">
    		<input type="text" name="Name">
    		<input type="submit" value="Crea Cartella">
    	</form>
    	</BODY>
    </HTML>
    <%
    END IF
    %>
    Massimo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Ciao, grazie innanzitutto per la risposta, ma forse non sono riuscito a spiegare bene la mia esigenza.

    Vorrei riuscire a gestire i codici di errore, cioè vorrei sapere dove sono menzionati (se lo sono) i codici, ad esempio:

    001 - cartella già esistente
    002 - errore di scrittura
    003 - non autorizzato
    004 - caratteri non validi

    Ecc....

    E' possibile?

    Grazie ancora!
    AltF4

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    Asp non ha un metodo nativo per la gestione degli errori come in altri linguaggi, ad esempio i blocchi try catch di C# o Java.

    Esiste però un'istruzione che, se usata nel modo corretto ci consente di gestire gli errori a runtime evitando i classici messaggi di errore di IIS

    <%
    On Error Resume Next
    %>

    per sapere il numero di errore generato devi fare una pagina che contiene un errore e farti stampare il risultato.
    Nel tuo esempio l'errore è su un risultato vero o falso, se falso ti restituisce 58



    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    <%
    Response.Buffer = true
    
    On Error Resume Next
    
    'ERRORE divisione X 0
    Response.Write(10/0)
    %>
    <html>
    <head>
    <title>Pagina</title>
    </head>
    
    <body>
    <%
    
    'controllo degli errori
    if err.Number <> 0 then
    
    'Svuota il buffer di elaborazione
    Response.Clear()
    
    ' Mostra un messaggio di errore
    
    Response.Write("NUMERO ERRORE: "&err.number&"
    DESCRIZIONE ERRORE: "&err.description&"
    
    "&err.Source&"
    
    ")
    else
    
    ' Mostra il contenuto della pagina,
    
    
    end if
    
    %>
    </body>
    </html>
    Risultato:

    NUMERO ERRORE: 11
    DESCRIZIONE ERRORE: Division by zero

    Microsoft VBScript runtime error


    Massimo.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Ok, ti ringrazio!

    Quindi non essendoci dei codici precisi che indicano a quale errore fa riferimento, mi conviene avere 2 alternative: cartella creata e cartella non creata!

    La motivazione è inutile a questo punto!

    Grazie ancora per l'aiuto!

    AltF4

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2000
    Messaggi
    938
    Ciao,

    il numero del codice dell'errore è lo stesso per un determinato errore quando trovato.

    58 per il tuo script

    11 divisione X 0

    ecc....

    Non so se c'è un tutorial che li descrive tutti.

    Massimo.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.