Buneas, estoy trabajando en un sistema para auditorias internas de una empresa y lo unico que me falta es anexarle un modulo donde se carge una carpetas en un treeview y sus archivos en un listview, y segun el archivo que le de doble click en el listview se abra, en este caso tengo puros pdf, pero no importa solo quiero que se muestren y poder abrirlos, hasta ahora solo e logrado cargar carpetas y subcarpetas en el treeviw les dejo el codigo que tengo
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cargarCarpetas("C:/Manuales")
End Sub
Public Sub cargarSubcarpetas(ByVal rutaRaiz As String,
ByVal nodoTree As Windows.Forms.TreeNode)
On Error Resume Next
Dim carpetaActual As String
Dim indice As Integer
If nodoTree.Nodes.Count = 0 Then
For Each carpetaActual In
My.Computer.FileSystem.GetDirectories(rutaRaiz)
indice = carpetaActual.LastIndexOf(System.IO.Path.PathSeparator)
nodoTree.Nodes.Add(carpetaActual.Substring(indice + 1,
carpetaActual.Length - indice - 1))
nodoTree.LastNode.Tag = carpetaActual
nodoTree.LastNode.ImageIndex = 0
Next
End If
End Sub
Public Sub cargarCarpetas(ByVal rutaRaiz As String)
Dim nodoBase As System.Windows.Forms.TreeNode
If IO.Directory.Exists(rutaRaiz) Then
If rutaRaiz.Length <= 3 Then
nodoBase = TreeView1.Nodes.Add(rutaRaiz)
Else
nodoBase = TreeView1.Nodes.Add(
My.Computer.FileSystem.GetName(rutaRaiz))
End If
nodoBase.Tag = rutaRaiz
cargarSubcarpetas(rutaRaiz, nodoBase)
Else
Throw New System.IO.DirectoryNotFoundException()
End If
End Sub
Private Sub TreeView1_AfterExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterExpand
Dim n As System.Windows.Forms.TreeNode
For Each n In e.Node.Nodes
cargarSubcarpetas(n.Tag, n)
Next
End Sub
Private Sub TreeView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseDoubleClick
Dim ruta As String
ruta = TreeView1.SelectedNode.ToString.Substring(9)
TextBox1.Text = ruta
Shell("explorer.exe root=" & TextBox1.Text & " ", vbNormalFocus)
End Sub
End Class
Como ven tengo 1 treview, 1 listview y 1 textbox, espero alguien pueda ayudarme con algun ejemplo que tengan por ahi, de antemano muchas gracias.
Como siempre lo volvi a resolver yo solo, no se por que tengo mala suerte, desde que entre en este foro no me resuelven ni una pinche duda ni por muy sencilla que parezca, en este subForo de Visal Basic e posteado ya 5 veces de las cuales las 5 termino conviertonlas en aportes propios hacia la comunidad, bueno espero que por lo menos ayuden a alguien de tantos que quieren aprender y postean dudas en este foro.
Como siempre lo volvi a resolver yo solo, no se por que tengo mala suerte, desde que entre en este foro no me resuelven ni una pinche duda ni por muy sencilla que parezca, en este subForo de Visal Basic e posteado ya 5 veces de las cuales las 5 termino conviertonlas en aportes propios hacia la comunidad, bueno espero que por lo menos ayuden a alguien de tantos que quieren aprender y postean dudas en este foro.
(Si alguien requiere el codigo por favor no dude en mandarme pm)
A lo mejor es porque estás en el foro equivocado. En teoría, esto es para VB (5 o 6)
Si es para .NET
http://foro.elhacker.net/net-b62.0/ (http://foro.elhacker.net/net-b62.0/)
Además, para mejor comprensión y legibilidad del código te recomiendo que uses GeShi para . Net
Imports System.IO
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
cargarCarpetas("C:/Manuales")
End Sub
Public Sub cargarSubcarpetas(ByVal rutaRaiz As String,
ByVal nodoTree As Windows.Forms.TreeNode)
On Error Resume Next
Dim carpetaActual As String
Dim indice As Integer
If nodoTree.Nodes.Count = 0 Then
For Each carpetaActual In
My.Computer.FileSystem.GetDirectories(rutaRaiz)
indice = carpetaActual.LastIndexOf(System.IO.Path.PathSeparator)
nodoTree.Nodes.Add(carpetaActual.Substring(indice + 1,
carpetaActual.Length - indice - 1))
nodoTree.LastNode.Tag = carpetaActual
nodoTree.LastNode.ImageIndex = 0
Next
End If
End Sub
Public Sub cargarCarpetas(ByVal rutaRaiz As String)
Dim nodoBase As System.Windows.Forms.TreeNode
If IO.Directory.Exists(rutaRaiz) Then
If rutaRaiz.Length <= 3 Then
nodoBase = TreeView1.Nodes.Add(rutaRaiz)
Else
nodoBase = TreeView1.Nodes.Add(
My.Computer.FileSystem.GetName(rutaRaiz))
End If
nodoBase.Tag = rutaRaiz
cargarSubcarpetas(rutaRaiz, nodoBase)
Else
Throw New System.IO.DirectoryNotFoundException()
End If
End Sub
Private Sub TreeView1_AfterExpand(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterExpand
Dim n As System.Windows.Forms.TreeNode
For Each n In e.Node.Nodes
cargarSubcarpetas(n.Tag, n)
Next
End Sub
Private Sub TreeView1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseDoubleClick
Dim ruta As String
ruta = TreeView1.SelectedNode.ToString.Substring(9)
TextBox1.Text = ruta
Shell("explorer.exe root=" & TextBox1.Text & " ", vbNormalFocus)
End Sub
End Class
Se me olvidaba...
En el directorio de instalación de VB.NET 2010 puedes encontrar un archivo comprimido con ejemplos, concretamente en:
C:\Program Files\Microsoft Visual Studio 10.0\Samples\3082
Encontrarás un archivo ZIP llamado VBSamples.zip. Dentro del mismo una carpeta llamada Winforms Samples y dentro de ésta, otra llamada ExplorerApp que contiene un ejemplo de Explorador de carpetas, con función doble clic sobre los archivos para abrirlos.
Saludos