Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: odeONeSs en 21 Noviembre 2008, 10:46 am



Título: Error en windows vista accediendo a Directorios
Publicado por: odeONeSs en 21 Noviembre 2008, 10:46 am
Hola buenas!!
 Tengo un problemilla y es que he hecho un arbol explorador de directorios, el tema es que en Windows xp funciona a la perfección, y en windows vista tambien funciona, pero cuando quiero cargar un array con System.IO.Directory.GetDirectories en ciertas carpetas como "Documents and Setings" o "Archivos de programa" me dice que no tengo los permisos necesarios. He ejecutado el programa como administrador y con compatibilidad Con windowsXp, pero nada, me gustaria saber si a alguien mas le ha pasado.

Gracias por antipado

Un saludo!!

Aqui os dejo el codigo posteado:

Código
  1. Private Sub cargar_arbol()
  2.        Dim i, x, z As Integer
  3.        Dim cadena() As String
  4.        Dim resultado As String
  5.  
  6.        Dim tvRoot, tvNode1, tvNode2, tvNode3 As TreeNode
  7.        Dim unidades() As System.IO.DriveInfo
  8.        Dim Nivel1(), Nivel2() As String
  9.  
  10.        'añade mipc
  11.        tvRoot = Me.TreeView.Nodes.Add("mipc", "Mi PC", 4)
  12.        unidades = System.IO.DriveInfo.GetDrives
  13.        'obtiene unidades
  14.  
  15.        For i = 0 To UBound(unidades)
  16.            'carga unidades
  17.            cadena = Split(unidades(i).ToString, "\")
  18.            resultado = cadena(UBound(cadena) - 1)
  19.            If unidades(i).DriveType = DriveType.CDRom Then
  20.                tvNode1 = tvRoot.Nodes.Add(unidades(i).ToString, resultado, 3)
  21.            Else
  22.                tvNode1 = tvRoot.Nodes.Add(unidades(i).ToString, resultado, 2)
  23.            End If
  24.  
  25.            Try
  26.                Nivel1 = System.IO.Directory.GetDirectories(unidades(i).ToString)
  27.  
  28.  
  29.                For x = 0 To UBound(Nivel1)
  30.                    'carga unidades
  31.                    cadena = Split(Nivel1(x).ToString, "\")
  32.                    resultado = cadena(UBound(cadena))
  33.  
  34.                    tvNode2 = tvNode1.Nodes.Add(Nivel1(x).ToString, resultado)
  35.  
  36.                    Nivel2 = System.IO.Directory.GetDirectories(Nivel1(x).ToString)
  37.  
  38.                    For z = 0 To UBound(Nivel2)
  39.  
  40.                        cadena = Split(Nivel2(z).ToString, "\")
  41.                        resultado = cadena(UBound(cadena))
  42.  
  43.                        tvNode3 = tvNode2.Nodes.Add(Nivel2(z).ToString, resultado)
  44.  
  45.                    Next
  46.  
  47.                Next
  48.  
  49.            Catch ex As Exception
  50.  
  51.  
  52.  
  53.            End Try
  54.  
  55.  
  56.        Next
  57.  
  58.  
  59.  
  60.  
  61.    End Sub

Código
  1. Private Sub TreeView_BeforeExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView.BeforeExpand
  2.        Dim x, z As Integer
  3.        Dim cadena() As String
  4.        Dim resultado As String
  5.  
  6.        Dim tvNode2, tvNode3 As TreeNode
  7.  
  8.        Dim Nivel1(), Nivel2() As String
  9.        If TreeView.SelectedNode.Name <> "mipc" Then
  10.  
  11.  
  12.            Try
  13.  
  14.                Nivel1 = System.IO.Directory.GetDirectories(TreeView.SelectedNode.Name)
  15.  
  16.                TreeView.SelectedNode.Nodes.Clear()
  17.                For x = 0 To UBound(Nivel1)
  18.                    'carga unidades
  19.                    cadena = Split(Nivel1(x).ToString, "\")
  20.                    resultado = cadena(UBound(cadena))
  21.  
  22.                    tvNode2 = TreeView.SelectedNode.Nodes.Add(Nivel1(x).ToString, resultado)
  23.                    If resultado <> "System Volume Information" Then
  24.                        Nivel2 = System.IO.Directory.GetDirectories(Nivel1(x).ToString)
  25.  
  26.                        For z = 0 To UBound(Nivel2)
  27.  
  28.                            cadena = Split(Nivel2(z).ToString, "\")
  29.                            resultado = cadena(UBound(cadena))
  30.  
  31.                            tvNode3 = tvNode2.Nodes.Add(Nivel2(z).ToString, resultado)
  32.  
  33.                        Next
  34.                    End If
  35.  
  36.                Next
  37.  
  38.            Catch ex As Exception
  39.                MsgBox("Error " & TreeView.SelectedNode.Name)
  40.  
  41.  
  42.            End Try
  43.  
  44.        End If
  45.  
  46.  
  47.  
  48.  
  49.    End Sub