ATRIBUTOS DE PASTA - FSO

DANLEONHART 19/09/2011 07:02:24
#384612
Pessoal...

Utilizo esta rotina para listar as subpastas de determinada pasta...em um ListBox listo os nomes e atributos das pastas...porém na coluna dos Atributos só aparecem número...tem como saber o que relativamente significam esses numeros ???

Script:

Private Sub cmd_Listar_Click()
Dim PST As Folder, P2 As Folder

Set PST = FSO.GetFolder(txt1.Text)

For Each P2 In PST.SubFolders
Lst1.AddItem P2.Name & vbTab & P2.Attributes
Next

End Sub


ROBIU 19/09/2011 11:30:13
#384625
Resposta escolhida
Adiciona esta função.
Function ConvAtrib(x As FileAttribute) As String
Select Case x
Case 0: ConvAtrib = [Ô]Normal[Ô]
Case 1: ConvAtrib = [Ô]Somente Leitura[Ô]
Case 2: ConvAtrib = [Ô]Oculto[Ô]
Case 4: ConvAtrib = [Ô]Sistema[Ô]
Case 16: ConvAtrib = [Ô]Diretório[Ô]
Case 32: ConvAtrib = [Ô]Compactado[Ô]
Case 6: ConvAtrib = [Ô]Oculto e Sistema[Ô] [ô]soma: 2 + 4
Case 18: ConvAtrib = [Ô]Diretório Oculto[Ô] [ô]soma: 16 + 2
Case 48: ConvAtrib = [Ô]Normal[Ô]
Case 50: ConvAtrib = [Ô]Diretório Oculto Indexado[Ô] [ô]Soma: 16 + 32 + 2
Case 2064: ConvAtrib = [Ô]Diretório Compactado[Ô]

Case Else: ConvAtrib = x
End Select

End Function
[ô]0 vbNormal
[ô]1 vbReadOnly
[ô]2 vbHidden
[ô]4 vbSystem
[ô]16 vbDirectory
[ô]32 vbArchive


na sua sub, altere esta linha:

Lst1.AddItem P2.Name & vbTab & ConvAtrib(P2.Attributes)
LIZANDER 19/09/2011 11:30:30
#384626
Folder.Attributes
Valores possíveis:
0 - Normal
1 - Somente Leitura
3 - Oculto
4 - Arquivo de Sistema
8 - Volume
16 - Diretório (pasta)
32 - Arquivo
64 - Alias, ou apelido
128 - Comprimido

Extraído de
http://www.vb6.us/tutorials/using-fso-file-system-object-vb6
DANLEONHART 19/09/2011 20:09:52
#384705
OK...e quando retorna 1046, 17, 22...o que é ???
ROBIU 19/09/2011 22:26:21
#384714
1024 = Link ou atalho
As constantes são as já citadas aqui. As outras são somas de constantes combinadas. Ex:

17 = 16 + 1 = Diretório + Somente Leitura
22 = 16 + 4 + 2 = Diretório + Sistema + Oculto
1046= 1024+16+4+2 = Atalho + Diretorio + Sistema + Oculto

Mais detalhes sobre constantes atributos aqui
DANLEONHART 19/09/2011 22:44:53
#384716
Sem querer abusar, mas em qual ou quais destes atributos não é permitido o acesso ?

Erro Runtime 70 (Permission Denied)
ROBIU 20/09/2011 08:50:44
#384728
Citação:

Erro Runtime 70 (Permission Denied)


Esse erro não é controlado pela pela propriedade Atributos. Ele ocorre quando tentamos acessar uma pasta sem permissão e antes de lê os atributos das subpastas e arquivos. Você deve fazer um tratamento de erro caso ocorra isso. Veja o exemplo:

Private Sub Command1_Click()
On Error GoTo DeuErro

Dim PST As Folder, P2 As Folder

Set PST = FSO.GetFolder(Txt1.Text)

For Each P2 In PST.SubFolders
Lst1.AddItem P2.Name & vbTab & ConvAtrib(P2.Attributes)
Next

DeuErro:
If Err.Number = 70 Then
MsgBox [Ô]Você não tem permissão para listar o conteúdo desta pasta![Ô]
ElseIf Err.Number = 76 Then
MsgBox [Ô][ô][Ô] & Txt1.Text & [Ô][ô] não é um caminho válido![Ô], vbCritical, [Ô]Pasta não encontrada[Ô]
ElseIf Err.Number = 0 Then
Else
MsgBox [Ô]Ocorreu erro [Ô] & Err.Number & [Ô] - [Ô] & Err.Description
End If
[ô]Exit Sub
End Sub
Tópico encerrado , respostas não são mais permitidas