Listbox - Process start   otázka

VB.NET, WinForms

Dobry den , mam problem snazim se vytvorit programek ktery v listboxu zobrazi soubory v urcite slozce ve slozce "Dejepis" mam soubor "dejepis.txt" a ve slozce "ICT" mam soubor "ict.txt" , a vzdy kdyz spustim aplikaci a zvolim jakykoliv soubor napr ict.txt tak mi to pry debugu vypise toto "Systém nemůže nalézt uvedený soubor" a oznaci mi to tento radek , nevite co s tim ? soubory ve slozkach se zobrazuji , jen nejdou spustit :

        System.Diagnostics.Process.Start(Me.ListBox1.SelectedItem.ToString())

.. zde pridavam Zdrojovy kod :

Imports System.IO

Public Class Form4
    Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
    End Sub

    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load            ' Get the current directory.

    End Sub

    Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

    End Sub


    Private Sub ListBox1_ValueMemberChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.ValueMemberChanged

    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        ListBox1.Items.Clear()
        Dim di As New IO.DirectoryInfo(Directory.GetCurrentDirectory & "/Dejepis")
        Dim diar1 As IO.FileInfo() = di.GetFiles()
        Dim dra As IO.FileInfo

        'list the names of all files in the specified directory
        For Each dra In diar1
            ListBox1.Items.Add(dra)
        Next
        ListBox1.Update()

    End Sub


    Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click
        ListBox1.Items.Clear()
        Dim di As New IO.DirectoryInfo(Directory.GetCurrentDirectory & "/ICT")
        Dim diar1 As IO.FileInfo() = di.GetFiles()
        Dim dra As IO.FileInfo

        'list the names of all files in the specified directory
        For Each dra In diar1
            ListBox1.Items.Add(dra)
        Next
        ListBox1.Update()

    End Sub

    Private Sub ListBox1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick
        System.Diagnostics.Process.Start(Me.ListBox1.SelectedItem.ToString())
    End Sub
End Class

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět

Dobrý den,

problém je v tom, že do funkce Process.Start() předáváte cestu k souboru, který neexistuje. Musíte tedy zjistit, co je skutečně předáváno jako parametr funkce Start(), například tak, že si hodnotu toho parametru vypíšete do MsgBoxu nebo do Immediate Window.

MsgBox(Me.ListBox1.SelectedItem.ToString())

System.Diagnostics.Debug.WriteLine(Me.ListBox1.SelectedItem.ToString()) 'Immediate Window

Domnívám se, že SelectedItem.ToString() vrací pouze název souboru, nikoliv jeho celou cestu. Musíte tedy název souboru spojit s cestou k souboru, nebo nejlépe "SelectedItem.ToString()" nahradit "SelectedItem.FullName".

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dobry den , dekuji za odpoved

nahradil jsem "SelectedItem.ToString()" za "SelectedItem.FullName". a vse funguje jak ma , dekuji :)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback