• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

SLIFE

[Resolvido] Retirar um valor de uma listbox para uma variavel

12 mensagens neste tópico

Boas a todos

Estou de volta de um programa que estou a fazer mas de repente deu-me uma grande branca!!! :wallbash:

O problema e o seguinte:

Estou a ler de uma pasta, e a verificar os vários ficheiros que existem.

E adiciono os nomes a listbox! Mas está a colocar todo o caminho em vez de ser só os nomes dos ficheiros.

Tipo:

c:\teste\ficheiro1.exe

Precisava que colocasse apenas o nome do ficheiro na listbox.

Tipo:

Ficheiro1.exe

Outro problema é ao clicar num nome do ficheiro, queria que esse nome fosse para uma variável.

alguém me pode dar uma ajuda?

Cumprimentos

SLIFE

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens aqui um exemplo.

A segunda dúvida não percebi, explica melhor :)

Boas

A segunda parte já consegui resolver

Mas a primeira nao consegui entender o que querias que visse!

Era o Split???

Nao existe outra maneira?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, era isto:

My.Computer.FileSystem.GetFileInfo("c:\teste\ficheiro1.exe").Name

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não, era isto:

My.Computer.FileSystem.GetFileInfo("c:\teste\ficheiro1.exe").Name

Eu Actualmente tenho algo deste genero:

For Each arquivo As String In IO.Directory.GetFiles(caminho, "*.*")

Isto vai buscar todos os ficheiros existentes dentro de uma pasta!

Com o teu exemplo como poderei ir buscar todos os ficheiros de uma determinada pasta??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens que ir buscar os ficheiros da mesma maneira. Simplesmente o meteres na listbox tens que meter o resultado disto:

My.Computer.FileSystem.GetFileInfo("c:\teste\ficheiro1.exe").Name

Onde substituis "c:\teste\ficheiro1.exe" pelo caminho que metias na listbox. Percebeste?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens que ir buscar os ficheiros da mesma maneira. Simplesmente o meteres na listbox tens que meter o resultado disto:

My.Computer.FileSystem.GetFileInfo("c:\teste\ficheiro1.exe").Name

Onde substituis "c:\teste\ficheiro1.exe" pelo caminho que metias na listbox. Percebeste?

Nao estou a conseguir.

O codigo que tenho e este:


For Each arquivo As String In IO.Directory.GetFiles(caminhopasta, "*.*")

            ' Verifica qual a localização e nome do ficheiro
            Dim fi As New IO.FileInfo(arquivo)

            ' Verifica se o nome tem um tamanho superior a 3
            If (fi.Name.Length - fi.Extension.ToString.Length) > 3 Then
               

             
                LTBFilmes.Items.Add(arquivo)

            End If
        Next

Como adapto o que dizes neste codigo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como tens o código, até existe uma maneira melhor:

        For Each arquivo As String In IO.Directory.GetFiles(caminhopasta, "*.*")

            ' Verifica qual a localização e nome do ficheiro
            Dim fi As New IO.FileInfo(arquivo)

            ' Verifica se o nome tem um tamanho superior a 3
            If (fi.Name.Length - fi.Extension.ToString.Length) > 3 Then



                LTBFilmes.Items.Add(fi.Name)

            End If
        Next

EDIT: Já resolveste, mas fica aqui outra alternativa. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como tens o código, até existe uma maneira melhor:

        For Each arquivo As String In IO.Directory.GetFiles(caminhopasta, "*.*")

            ' Verifica qual a localização e nome do ficheiro
            Dim fi As New IO.FileInfo(arquivo)

            ' Verifica se o nome tem um tamanho superior a 3
            If (fi.Name.Length - fi.Extension.ToString.Length) > 3 Then



                LTBFilmes.Items.Add(fi.Name)

            End If
        Next

EDIT: Já resolveste, mas fica aqui outra alternativa. :)

Sim e mais uma alternativa que nem tinha dado por ela!

Cabeça mesmo no ar!

Ja agora so mais uma coisa, existe alguma maneira de ficar so mesmo o nome?

Sem a extensao do ficheiro? Tipo: Ficheiro 1.exe ficar escrito na listbox apenas Ficheiro 1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Admitindo que fazes dentro do ciclo For

semext = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Admitindo que fazes dentro do ciclo For

semext = fi.Name.Substring(0, fi.Name.Length - fi.Extension.Length)

Funciona

Obrigado!

Estava mesmo perdido agora nesta situação!

Fica bem

E mais uma vez um meu OBRIGADO!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora