výpis složek   zodpovězená otázka

VB.NET

Zdravím,

mam jen malou prosbičku, potřebuji do listboxu dostat výpis složek, ze složky u programu. Mám složku STATION a v ní se nacházejí další složky(Ziznikov, CeskeZlatniky), jedná se o to že do budoucnosti plánuji stanice přidávat a chtěl bych listbox kde bych si stanici vybral. Tyto složky mají podsložky ale ty vypisovat nechci.

Použil jsem tohle

Private Sub Info_Button_Click(ByVal sender As System.Object,  ByVal e As System.EventArgs) Handles Info_Button.Click
        Dim slozky As Collections.ObjectModel.ReadOnlyCollection(Of String) = _
        Microsoft.VisualBasic.FileIO.FileSystem.GetDirectories(My.Application.Info.DirectoryPath & TS_SlozkaStanic, FileIO.SearchOption.SearchTopLevelOnly)

        Dim i As Integer
        For i = 0 To slozky.Count - 1
            lbSeznamStanic.Items.Add(slozky(i))
        Next

    End Sub

vše je fajn, až na to že to vypisuje kompletní cestu c:\program\......\station\slozka1

c:\program\......\station\slozka2

potřeboval bych vypsat jen

slozka1

slozka2

atd...

protože budu vybraný item listboxu ukládat do souboru a z toho souboru si to bude načítat jiný program.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobrý den,

možná by Vám mohla pomoci fce

System.IO.Path.GetFileName

nahlásit spamnahlásit spam 0 odpovědětodpovědět

přečetl jsem si

http://www.vbnet.cz/blog-clanek--160-net...

http://www.vbnet.cz/blog-clanek--161-net...

a na řešení jsem nepřišel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Když vám nevyhovují funkce "System.IO.Path" a máte celou cestu se jménem složky na konci, použijte řetězcovou funkci:

Public Class Form1
  Private Sub Form1_Load(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles MyBase.Load
    ' cestu máte, např.
    Dim cesta As String = "c:\program\......\station\slozka1"
    ' odstraníme poslední znak, kdyby bylo \ na konci:
    If cesta.EndsWith("\") Then cesta = _
       cesta.Substring(0, cesta.Length - 1)
    ' získáme jméno složky:
    MsgBox(cesta.Substring(cesta.LastIndexOf("\") + 1))
  End Sub
End Class

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

Děkuji tohle bylo přesně to co jsem potřeboval. Kdyby to někdo taky potřeboval tak sem dám i můj kód

Private Sub Info_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Info_Button.Click

        Dim slozky As Collections.ObjectModel.ReadOnlyCollection(Of String) = _
        Microsoft.VisualBasic.FileIO.FileSystem.GetDirectories(Application.StartupPath & TS_SlozkaStanic, FileIO.SearchOption.SearchTopLevelOnly)

        Dim i As Integer
        For i = 0 To slozky.Count - 1
            lbSeznamStanic.Items.Add(slozky(i).Substring(slozky(i).LastIndexOf("\") + 1))
        Next

    End Sub

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

Možná vám pomůže toto

    Sub slozky(ByVal dir As String)
        Dim startDir As New IO.DirectoryInfo(dir)
        Try
            For Each directory As IO.DirectoryInfo In startDir.GetDirectories()
                ListBox1.Items.Add(directory.Name & Environment.NewLine)
            Next
        Catch ex As UnauthorizedAccessException
            'Chyba oprávnění k procházení složkou
            MsgBox("Chyba oprávnění")
        End Try
    End Sub

volání:

slozky("C:\...")

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

I Vám děkuji... taktéž funguje, přemýšlím co bude pro mě lepší jestli ta moje varianta nebo vaše řešení

nahlásit spamnahlásit spam 0 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