Error en windows vista accediendo a Directorios

Iniciado por odeONeSs, 21 Noviembre 2008, 10:46 AM

0 Miembros y 1 Visitante están viendo este tema.

odeONeSs

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 (vbnet) [Seleccionar]
Private Sub cargar_arbol()
        Dim i, x, z As Integer
        Dim cadena() As String
        Dim resultado As String

        Dim tvRoot, tvNode1, tvNode2, tvNode3 As TreeNode
        Dim unidades() As System.IO.DriveInfo
        Dim Nivel1(), Nivel2() As String

        'añade mipc
        tvRoot = Me.TreeView.Nodes.Add("mipc", "Mi PC", 4)
        unidades = System.IO.DriveInfo.GetDrives
        'obtiene unidades

        For i = 0 To UBound(unidades)
            'carga unidades
            cadena = Split(unidades(i).ToString, "\")
            resultado = cadena(UBound(cadena) - 1)
            If unidades(i).DriveType = DriveType.CDRom Then
                tvNode1 = tvRoot.Nodes.Add(unidades(i).ToString, resultado, 3)
            Else
                tvNode1 = tvRoot.Nodes.Add(unidades(i).ToString, resultado, 2)
            End If

            Try
                Nivel1 = System.IO.Directory.GetDirectories(unidades(i).ToString)


                For x = 0 To UBound(Nivel1)
                    'carga unidades
                    cadena = Split(Nivel1(x).ToString, "\")
                    resultado = cadena(UBound(cadena))

                    tvNode2 = tvNode1.Nodes.Add(Nivel1(x).ToString, resultado)

                    Nivel2 = System.IO.Directory.GetDirectories(Nivel1(x).ToString)

                    For z = 0 To UBound(Nivel2)

                        cadena = Split(Nivel2(z).ToString, "\")
                        resultado = cadena(UBound(cadena))

                        tvNode3 = tvNode2.Nodes.Add(Nivel2(z).ToString, resultado)

                    Next

                Next

            Catch ex As Exception

             

            End Try


        Next

 


    End Sub


Código (vbnet) [Seleccionar]
Private Sub TreeView_BeforeExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView.BeforeExpand
        Dim x, z As Integer
        Dim cadena() As String
        Dim resultado As String

        Dim tvNode2, tvNode3 As TreeNode

        Dim Nivel1(), Nivel2() As String
        If TreeView.SelectedNode.Name <> "mipc" Then


            Try

                Nivel1 = System.IO.Directory.GetDirectories(TreeView.SelectedNode.Name)

                TreeView.SelectedNode.Nodes.Clear()
                For x = 0 To UBound(Nivel1)
                    'carga unidades
                    cadena = Split(Nivel1(x).ToString, "\")
                    resultado = cadena(UBound(cadena))
                 
                    tvNode2 = TreeView.SelectedNode.Nodes.Add(Nivel1(x).ToString, resultado)
                    If resultado <> "System Volume Information" Then
                        Nivel2 = System.IO.Directory.GetDirectories(Nivel1(x).ToString)

                        For z = 0 To UBound(Nivel2)

                            cadena = Split(Nivel2(z).ToString, "\")
                            resultado = cadena(UBound(cadena))

                            tvNode3 = tvNode2.Nodes.Add(Nivel2(z).ToString, resultado)

                        Next
                    End If

                Next

            Catch ex As Exception
                MsgBox("Error " & TreeView.SelectedNode.Name)

         
            End Try

        End If




    End Sub
Cambio de firma de prueba