Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400

    Chiamata di routine o argomento non validi

    Cosa sbaglio in questo codice perchè restituisce:
    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A0005)
    Chiamata di routine o argomento non validi
    Codice:

    codice:
    rDrive = "D:\Documents and Settings\riserva\Documenti"
    
    Dim rFolder
    rFolder = Trim(Request.QueryString("folder"))
    
    Dim extraPath
    extraPath = "?drive=" & rDrive & "&folder=" & rFolder
    
    If Len(rDrive) < 1 Then
    		rDrive = "C"
    	End If
    
    
    Dim fso
    		Set fso = Server.CreateObject("Scripting.FileSystemObject")
    		
    	Dim drive, rootFolder
    
    	If Len(rFolder) < 1 Then
    		Set drive = fso.GetDrive(rDrive) 
    		Set rootFolder = drive.RootFolder
    	Else
    		Set rootFolder = fso.GetFolder(rFolder)
    	End If
    	
    	Dim parentFolder, parPath
    	
    	If Not rootFolder.IsRootFolder Then
    		Set parentFolder = rootFolder.ParentFolder
    		parPath = parentFolder.Path
    		parPath = "folder.asp?drive=" & rDrive & "&folder=" & Server.URLEncode(parPath)
    	Else
    		parPath = "drive.asp?drive=" & rDrive
    	End If

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    L'argomento rDrive può essere una lettera di unità (c), una lettera di unità seguita dai due punti (c: ), una lettera di unità seguita dai due punti e da un separatore di percorso (c:\) oppure un nome di una condivisione di rete (\\computer2\condivisione1).

    Roby

  3. #3
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    L'argomento rDrive può essere una lettera di unità (c), una lettera di unità seguita dai due punti (c: ), una lettera di unità seguita dai due punti e da un separatore di percorso (c:\) oppure un nome di una condivisione di rete (\\computer2\condivisione1).

    Roby
    Grazie Roby... adesso ho capito ma ho un altro problema... nel senso che non riesco ad aprire le cartelle per visualizzare i files in esse contenuti... ecco il codice completo, puoi aiutarmi ?:
    codice:
    Dim retDrive    
    	    retDrive = "D"
    
    Dim retFolder
    	    retFolder = "D:\Documents and Settings\riserva\Documenti"
    
    Dim extraPath
    	    extraPath = "?drive=" & retDrive & "&folder=" & retFolder
    
    
    Dim fso
    		Set fso = Server.CreateObject("Scripting.FileSystemObject")
    		
    	Dim drive, rootFolder
    
    	If Len(retFolder) < 1 Then
    		Set drive = fso.GetDrive(retDrive & ":")
    		Set rootFolder = drive.RootFolder
    	Else
    		Set rootFolder = fso.GetFolder(retFolder)
    	End If
    	
    	Dim parentFolder, parPath
    	
    	If Not rootFolder.IsRootFolder Then
    		Set parentFolder = rootFolder.ParentFolder
    		parPath = parentFolder.Path
    		parPath = "folder.asp?drive=" & retDrive & "&folder=" & Server.URLEncode(parPath)
    	Else
    		parPath = "drive.asp?drive=" & retDrive
    	End If
    
    Dim subFolders
    		Set subFolders = rootFolder.SubFolders
    
    	Dim folderAtt
    		folderAtt = "Unknown"
    
    	For Each folder in subFolders
    		folderAtt = getFolderType(folder.Attributes)
    		
    		If folderAtt = "Unknown" Then
    			Response.Write "<tr>"
    		Else
    			Response.Write "<tr bgcolor=""#f7f7f7"">"
    		End If
    
    		Response.Write "<td>"
    		Response.Write "" & folder.Name & ""
    		Response.Write "</td>"
    		Response.Write "<td style=""color:gray;"">" & folderAtt & "</td>"
    		
    		Response.Write "<td>" & folder.Type & "</td>"
    		Response.Write "<td style=""color:gray;"">" & folder.ShortName & "</td>"
    		
    		Response.Write "</tr>"
    	Next
    	
    	Dim folderPath
    		folderPath = rootFolder.Path
    
    
    Dim files
    		Set files = rootFolder.Files
    
    	For Each file in files
    		folderAtt = getFolderType(file.Attributes)
    		
    		If folderAtt = "Unknown" Then
    			Response.Write "<tr>"
    		Else
    			Response.Write "<tr bgcolor=""#f7f7f7"">"
    		End If
    
    		Response.Write "<td>"
    		
    		Response.Write "" & file.Name & ""
    		Response.Write "</td>"
    		Response.Write "<td style=""color:gray;"">" & folderAtt & "</td>"
    		
    		Response.Write "<td>" & file.Type & "</td>"
    		Response.Write "<td>" & FormatNumber((file.Size/1000),0) & " KB</td>"
    		Response.Write "<td style=""color:gray;"">" & file.ShortName & "</td>"
    		
    		Response.Write "</tr>"
    	Next
    	
    	Set files = Nothing
    	Set subFolders = Nothing
    	Set rootFolder = Nothing
    	Set drive = Nothing
    	Set fso = Nothing

  4. #4

  5. #5
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    E l'errore?

    Roby
    Nessun errore... semplicemente non va avanti quando provo ad esplodere la cartella...

    In sostanza lo script visualizza al momento il contenuto di tutto il drive D (cartelle+files), mentre vorrei che visualizzasse di default una determinata cartella del drive D non tutto il suo contenuto... mi spiego? grazie

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    getFolderType lo ignoro...
    Cos'è?

    Roby

  7. #7
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    codice:
    getFolderType() 
              Gets the type of the folder.
    Il problema è che impostando nello script:

    codice:
    retFolder = "D:\Documents and Settings\riserva\Documenti"
    quando clicco sulla cartella per esploderla sulla barra degli indirizzi visualizzo:
    http//127.0.0.1/folder.asp?drive=D&folder=D%3A%5CDocuments+and+Set tings%5Criserva%5CDocumenti%5Ccolline
    Naturalmente la cartella non si apre perchè non esiste...

    Il percorso corretto è :
    codice:
    D:\Documents and Settings\riserva\Documenti\Colline
    e non:
    codice:
    D:\D:\Documents and Settings\riserva\Documenti\Colline

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    E togli il Left(retDrive,1) dal link

    Roby

  9. #9
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Originariamente inviato da Roby_72
    E togli il Left(retDrive,1) dal link

    Roby
    codice:
    Response.Write "" & folder.Name & ""
    è lo stesso...

    codice:
    http//127.0.0.1/folder.asp?folder=D%3A%5CDocuments+and+Settings%5Criserva%5CDocumenti%5CColline

  10. #10
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    codice:
    <% Response.Buffer = True %>
    <%
    Dim retDrive
    	  retDrive = "D"
     
    Dim retFolder
     	   retFolder = "D:\Documents and Settings\riserva\Documenti\"
     		
    	Dim extraPath
    		extraPath = "?drive=" & retDrive & "&folder=" & retFolder
    	 
    	Function getFolderType(folderType)
      Dim retVal
      retVal = ""
     
      If folderType = 0 Then retVal = "Normal"
     
      If folderType AND 1 Then retVal = "ReadOnly"
     
      If folderType AND 2 Then
        If Len(retVal) > 0 Then retVal = retVal & ", "
        retVal = retVal & "Hidden"
      End If
     
      If folderType AND 4 Then
        If Len(retVal) > 0 Then retVal = retVal & ", "
        retVal = retVal & "System"
      End If
     
      If folderType AND 8 Then
        If Len(retVal) > 0 Then retVal = retVal & ", "
        retVal = retVal & "Volume"
      End If
     
      If folderType AND 16 Then
        If Len(retVal) > 0 Then retVal = retVal & ", "
        retVal = retVal & "Directory"
      End If
     
      If folderType AND 32 Then
        If Len(retVal) > 0 Then retVal = retVal & ", "
        retVal = retVal & "Archive"
      End If
     
      If folderType AND 64 Then
        If Len(retVal) > 0 Then retVal = retVal & ", "
        retVal = retVal & "Alias"
      End If
     
      If folderType AND 128 Then
        If Len(retVal) > 0 Then retVal = retVal & ", "
        retVal = retVal & "Compressed"
      End If
     
      getFolderType = retVal
    End Function
    		
    	If Len(retDrive) < 1 Then
    		retDrive = "C"
    	End If
     
    	Dim fso
    		Set fso = Server.CreateObject("Scripting.FileSystemObject")
    		
    	Dim drive, rootFolder
     
    	If Len(retFolder) < 1 Then
    		Set drive = fso.GetDrive(retDrive & ":")
    		Set rootFolder = drive.RootFolder
    	Else
    		Set rootFolder = fso.GetFolder(retFolder)
    	End If
    	
    	Dim parentFolder, parPath
    	
    	If Not rootFolder.IsRootFolder Then
    		Set parentFolder = rootFolder.ParentFolder
    		parPath = parentFolder.Path
    		parPath = "folder.asp?drive=" &
    retDrive & "&folder=" & Server.URLEncode(parPath)
    	Else
    		parPath = "drive.asp?drive=" & retDrive
    	End If
    %>
    <html>
    <%
    		If Len(retFolder) > 1 Then
    			Response.Write "Folder : " & retFolder & ""
    		Else
    			Response.Write "Drive : " & retDrive & ""
    		End If
    	%>
    <%
    	Dim subFolders
    		Set subFolders = rootFolder.SubFolders
    
    	Dim folderAtt
    		folderAtt = "Unknown"
    
    	For Each folder in subFolders
    		folderAtt = getFolderType(folder.Attributes)
    		
    		If folderAtt = "Unknown" Then
    			Response.Write "<tr>"
    		Else
    			Response.Write "<tr bgcolor=""#f7f7f7"">"
    		End If
    
    		Response.Write "<td>"
    		'drive=" & Left(retDrive,1) & "&
    		Response.Write "" & folder.Name & ""
    		Response.Write "</td>"
    		Response.Write "<td style=""color:gray;"">" & folderAtt & "</td>"
    		
    		Response.Write "<td>" & folder.Type & "</td>"
    		'Response.Write "<td>" & FormatNumber((folder.Size/1000),0) & " KB</td>"
    		Response.Write "<td style=""color:gray;"">" & folder.ShortName & "</td>"
    		
    		Response.Write "</tr>"
    	Next
    	
    	Dim folderPath
    		folderPath = rootFolder.Path
    %>
    <%
    		If Len(retFolder) > 1 Then
    			Response.Write "Files in Folder : " & retFolder & ""
    		Else
    			Response.Write "Files in Drive : " & retDrive & ""
    		End If
    	%><%
    	Dim files
    		Set files = rootFolder.Files
    
    	For Each file in files
    		folderAtt = getFolderType(file.Attributes)
    		
    		If folderAtt = "Unknown" Then
    			Response.Write "<tr>"
    		Else
    			Response.Write "<tr bgcolor=""#f7f7f7"">"
    		End If
    
    		Response.Write "<td>"
    		
    		
    		Response.Write "<a href=""file3.asp?drive=" & Left(retDrive,1)
    & "&folder=" & Server.URLEncode(folderPath) & "&file=" & Server.URLEncode(file.Path) & """>"
    & file.Name & "</a>"
    		Response.Write "</td>"
    		Response.Write "<td style=""color:gray;"">" & folderAtt & "</td>"
    		
    		Response.Write "<td>" & file.Type & "</td>"
    		Response.Write "<td>" & FormatNumber((file.Size/1000),0) & " KB</td>"
    		Response.Write "<td style=""color:gray;"">" & file.ShortName & "</td>"
    		
    		Response.Write "</tr>"
    	Next
    	
    	Set files = Nothing
    	Set subFolders = Nothing
    	Set rootFolder = Nothing
    	Set drive = Nothing
    	Set fso = Nothing
    %>
    
    </html>
    Lo script apre di default il percorso previsto in retFolder, ma quando clicco su una qualunque delle cartelle visualizzate non riesco ad esplodere le stesse cartelle per visualizzare i files in esse contenuti e non viene restituito nessun errore di sorta...

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.