Hallo,
Ik heb het onstaande programmaatje met de volgende code:
Mijn vraag gaat over de volgende regel:
Vanuit de listview wil ik door het openen van dit bestand het bestandje uitvoeren. Ik de listview staat bijv: Hussel.exe
Dit probeer ik op te starten door deze code":
Process.Start(System.IO.Path.GetFullPath(ListView.SelectedItems.Item(0).Text
Nu komt het probleem dat alle programma'sdezelfde path ineens krijgen als ik dit met Getfullpath doe. Namelijk het fullpath is automatisch in de listview de currentpath.
Hoe los ik dit op
Ik heb het onstaande programmaatje met de volgende code:
Code:
Imports System.Diagnostics
Imports System.Windows.Forms
Imports System.IO
Public Class Explorer1
Private Sub Explorer1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
LoadTree()
SetView(View.Details)
End Sub
Private Sub LoadTree()
' Harde schijven worden ingeladen
Dim getInfo As System.IO.DriveInfo()
getInfo = System.IO.DriveInfo.GetDrives
Dim newNode As TreeNode
For Each info As System.IO.DriveInfo In getInfo
If info.IsReady Then
newNode = New TreeNode(info.Name & info.VolumeLabel)
Else
newNode = New TreeNode(info.Name)
End If
newNode.ImageIndex = 0
Dim di As DirectoryInfo = New DirectoryInfo(info.Name)
newNode.Tag = di
TreeView.Nodes.Add(newNode)
nodetree(newNode)
Next
End Sub
Public Function nodetree(ByVal sender As TreeNode)
Try
Dim longpath As String = Nothing
If TypeOf sender.Tag Is DirectoryInfo Then
Dim Sinfo As DirectoryInfo = sender.Tag
longpath = Sinfo.FullName
Else
Dim Finfo As FileInfo = sender.Tag
longpath = Finfo.DirectoryName
End If
Dim dirs() As String = Nothing
Dim dirname As String = Nothing
dirs = Directory.GetDirectories(longpath, "*.*", SearchOption.TopDirectoryOnly)
For Each d As String In dirs
Dim di As New DirectoryInfo(d)
dirname = di.Name
Dim newnode As New TreeNode(dirname)
newnode.Tag = di
sender.Nodes.Add(newnode)
Next
Catch
End Try
Return Nothing
End Function
Private Sub TreeView1_BeforeExpand(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewCancelEventArgs) Handles TreeView.BeforeExpand
Try
Dim Nnodes As TreeNodeCollection = e.Node.Nodes
For Each N As TreeNode In Nnodes
If TypeOf N.Tag Is DirectoryInfo Then
If N.Nodes.Count = 0 Then
nodetree(N)
End If
End If
Next
Catch ex As Exception
End Try
End Sub
Private Sub ToggleFoldersVisible()
Private Sub FoldersToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
ToggleFoldersVisible()
End Sub
Private Sub FoldersToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
ToggleFoldersVisible()
End Sub
Private Sub SetView(ByVal View As System.Windows.Forms.View)
Dim MenuItemToCheck As ToolStripMenuItem = Nothing
Select Case View
Case View.Details
MenuItemToCheck = DetailsToolStripMenuItem1
Case View.LargeIcon
MenuItemToCheck = GrootToolStripMenuItem
Case View.List
MenuItemToCheck = LijstToolStripMenuItem
Case View.SmallIcon
MenuItemToCheck = KleinToolStripMenuItem
Case View.Tile
MenuItemToCheck = TegelsToolStripMenuItem
End Select
For Each MenuItem As ToolStripMenuItem In LijstToolStripMenuItem.DropDownItems
If MenuItem Is MenuItemToCheck Then
MenuItem.Checked = True
Else
MenuItem.Checked = False
End If
Next
ListView.View = View
End Sub
Private Sub TreeView_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView.AfterSelect
node of the treeview
ListView.Items.Clear()
Dim dirs() As String = Nothing
Dim dirname As String = Nothing
Dim dinfo As DirectoryInfo
dinfo = e.Node.Tag
dirs = Directory.GetDirectories(dinfo.FullName, "*.*", SearchOption.TopDirectoryOnly)
For Each d As String In dirs
Dim di As New DirectoryInfo(d)
Dim temp As ListViewItem = ListView.Items.Add(di.Name)
temp.ImageIndex = 0
Next
Dim files() As String = Directory.GetFiles(dinfo.FullName, "*.*", SearchOption.TopDirectoryOnly)
For Each f As String In files
Dim fi As New FileInfo(f)
Dim temp As ListViewItem = ListView.Items.Add(fi.Name)
temp.ImageIndex = 1
Next
End Sub
Private Sub LijstToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LijstToolStripMenuItem.Click
SetView(View.List)
End Sub
Private Sub DetailsToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DetailsToolStripMenuItem1.Click
SetView(View.Details)
End Sub
Private Sub GrootToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GrootToolStripMenuItem.Click
SetView(View.LargeIcon)
End Sub
Private Sub KleinToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles KleinToolStripMenuItem.Click
SetView(View.SmallIcon)
End Sub
Private Sub TegelsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TegelsToolStripMenuItem.Click
SetView(View.Tile)
End Sub
Private Sub OpenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewToolStripMenuItem.Click
Process.Start(System.IO.Path.GetFullPath(ListView.SelectedItems.Item(0).Text))
End Sub
Private Sub ListView_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView.SelectedIndexChanged
MsgBox(ListView.SelectedItems.Item(0).Text)
End Sub
End Class
Mijn vraag gaat over de volgende regel:
Vanuit de listview wil ik door het openen van dit bestand het bestandje uitvoeren. Ik de listview staat bijv: Hussel.exe
Dit probeer ik op te starten door deze code":
Process.Start(System.IO.Path.GetFullPath(ListView.SelectedItems.Item(0).Text
Nu komt het probleem dat alle programma'sdezelfde path ineens krijgen als ik dit met Getfullpath doe. Namelijk het fullpath is automatisch in de listview de currentpath.
Hoe los ik dit op