LISTVIEW COM SIMBOLOS

CRACKER 20/02/2013 12:20:49
#419401
Boa tarde a esta grande comunidade.

Preciso de ajuda para resolver um problema que me aparece e que ainda não descobri a solução.

O que eu pretendo é o seguinte:
1- tenho no form 1 listview , 1 botão e 1 imageList
2- consigo ver todos os ficheiros de um determinado directorio ou até mesmo apenas os que eu quero especificando a extenção( ex. *.txt)



O que eu pretendia que ele fizesse era algo deste género:
->Se o ficheiro existir no directório aparece


->Se o ficheiro não existir aparece assim:


Será possível fazer isto em VB?? Agradeço desde já toda a ajuda que possam disponiblizar.
Apenas preciso de verificar os ficheiros da BD, ou seja ficheiros especificos, tipo database.accdb, comum.txt,cidades.txt

Código fonte da aplicação até agora:

 Imports System
Imports System.Windows.Forms
Imports System.IO
Public Class Form1

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Try
Dim diretorio As New DirectoryInfo(Application.StartupPath)
Dim arquivos As FileInfo() = diretorio.GetFiles([Ô]Comum.txt[Ô]) [ô]caso queira ver tudo altero para ([Ô]*[Ô])
Dim arquivo As IO.FileInfo
Dim imageListSmall As New ImageList()


If File.Exists(Application.StartupPath) Then
For Each arquivo In arquivos
ListView1.Items.Add(arquivo.Name, 1)
Next
Else
For Each arquivo In arquivos
ListView1.Items.Add(arquivo.Name, 0)
Next
End If


Catch ex As Exception
End Try

End Sub
End Class
PEGUDO 20/02/2013 14:15:27
#419417
Cara,
Não existe a possibilidade do ListView mostrar imagens da segunda coluna em diante.
Ele só mostra imagens em forma de ícone na primeira coluna.

Aqui tem um exemplo de como você pode contornar isso:
LISTVIEW - COLUNA COM CHECKBOX 

No exemplo, quando retornar false ele mostra uma caixa vazia. se você quiser modificá-la para uma caixa com um [Ô]x[Ô] dentro, é só trocar [txt-color=#0000f0]Chr(168)[/txt-color] por [txt-color=#0000f0]Chr(120)[/txt-color] dentro do código do Botão.
CRACKER 20/02/2013 15:36:51
#419428
~

Obrigado pelo esclarecimento
CRACKER 10/04/2013 15:10:07
#421749
Mas é possível com texto certo?

Por exemplo mostrar um X se ele não existir e um visto ou OK se ele existir. Como faço isso para vários ficheiros dentro de um directório?
TECLA 10/04/2013 22:58:55
#421780
Resposta escolhida
Deve ser isto o que procura.
Teste e retorne o resultado no fórum.



Copie o código abaixo e cole no evento Load do Form.
Obs.: Perceba que o nome do controle Listview é ListView1.

Dim simbolo As Boolean = False
Dim minhaFonteWingdings As New System.Drawing.Font([Ô]Wingdings 2[Ô], 12, FontStyle.Regular)
With ListView1
For iArq As Integer = 0 To 15
.Items.Add(String.Concat([Ô]Arquivo [Ô], iArq + 1.ToString([Ô]00[Ô]), [Ô].txt[Ô]))
.Items(iArq).UseItemStyleForSubItems = False
If simbolo = True Then
.Items(iArq).SubItems.Add([Ô]P[Ô])
simbolo = False
Else
.Items(iArq).SubItems.Add([Ô]O[Ô])
simbolo = True
End If
.Items(iArq).SubItems.Item(1).Font = minhaFonteWingdings
Next iArq
End With
CRACKER 15/04/2013 13:52:15
#421959
Obrigado Tecla, mas isso apenas funciona em ficheiros com apenas uma extensão certo?
O problema é que eu queria mostrar não apenas um txt, mas também queria verificar a existência de dll[ô]s e da base de dados accdb.

Formulário onde aparece a lista :


A lista de Ficheiros a mostrar se existem :


O código que tenho até agora é o seguinte:
  Imports System.IO

Public Class FrmConfigs

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim item1 As New ListViewItem([Ô]MyFarmsLibraryFunctions.dll[Ô])

If My.Computer.FileSystem.FileExists(Application.StartupPath & [Ô]/MyFarmsLibraryFunctions.dll[Ô]) = True Then
item1.SubItems.Add([Ô]Usado no controlo e registro das Farms[Ô])
item1.SubItems.Add([Ô]√[Ô])
Else
item1.SubItems.Add([Ô]Usado no controlo e registro das Farms[Ô])
item1.SubItems.Add([Ô]Χ[Ô])
End If

ListView1.Items.Add(item1)

[ô]Χ/√
End Sub

Private Sub FrmConfigs_Load(sender As Object, e As EventArgs) Handles MyBase.Load
[ô]Χ/√
ListView1.View = View.Details
ListView1.Items.Clear()
ListView1.Columns.Clear()

ListView1.Columns.Add([Ô]Ficheiro[Ô], 80, HorizontalAlignment.Left) [ô]CREATE COLOUMS AT RUN TIME
ListView1.Columns.Add([Ô]Utilizado para[Ô], 150, HorizontalAlignment.Center)
ListView1.Columns.Add([Ô]Χ/√[Ô], 60, HorizontalAlignment.Center)

End Sub



End Class


Como podes ver o teu código funciona bem no meu caso porque a maioria dos ficheiros a verificar são apenas DLL[ô]s, mas ainda tenho a base de dados ( Database.accdb) para verificar.Posso usar a mesma rotina para ela?

Obrigado pela tua ajuda.
Tópico encerrado , respostas não são mais permitidas