Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
A classe FileSystemObject está localizada na Microsoft Scripting Runtime (Scrrun.dll). Para obter o ficheiro Scrrun.dll, instale qualquer uma das seguintes pacotes:
Microsoft Windows Script Host
Microsoft Windows NT Option Pack
Microsoft Internet Information Server 3.0
Script de atualização 3.1
Microsoft Visual Studio 98
Microsoft Visual Basic 6.0
A classe FileSystemObject fornece um melhor desempenho que se você usar funções intrínsecas como Dir e GetAttr do Visual Basic. Além disso, o FileSystemObject é muito mais simples de implementar que as funções intrínsecas do Visual Basic.
Crie um novo projeto Standard EXE no Visual Basic. Por padrão, é criado o Form1.
No menu Project , clique em referências e, em seguida, adicione uma referência para o Microsoft Scripting Runtime. Se esta opção não estiver listada, localize o arquivo Scrrun.dll no seu sistema. Se você tiver a, instale uma das ferramentas listadas na seção Information About the FileSystemObject Class.
Adicione um controle ListBox , um rótulo e um CommandButton ao Form1. Ajuste a largura do controle Label para que ele seja o mesmo que a largura do formulário.
Adicione o seguinte código na seção General Declarations do Form1:
Option Explicit
Dim fso As New FileSystemObject
Dim fld As Folder
Private Sub Command1_Click()
Dim nDirs As Long, nFiles As Long, lSize As Currency
Dim sDir As String, sSrchString As String
sDir = InputBox("Type the directory that you want to search for", _
"FileSystemObjects example", "C:\")
sSrchString = InputBox("Type the file name that you want to search for", _
"FileSystemObjects example", "vb.ini")
MousePointer = vbHourglass
Label1.Caption = "Searching " & vbCrLf & UCase(sDir) & "..."
lSize = FindFile(sDir, sSrchString, nDirs, nFiles)
MousePointer = vbDefault
MsgBox Str(nFiles) & " files found in" & Str(nDirs) & _
" directories", vbInformation
MsgBox "Total Size = " & lSize & " bytes"
End Sub
Private Function FindFile(ByVal sFol As String, sFile As String, _
nDirs As Long, nFiles As Long) As Currency
Dim tFld As Folder, tFil As File, FileName As String
On Error GoTo Catch
Set fld = fso.GetFolder(sFol)
FileName = Dir(fso.BuildPath(fld.Path, sFile), vbNormal Or _
vbHidden Or vbSystem Or vbReadOnly)
While Len(FileName) <> 0
FindFile = FindFile + FileLen(fso.BuildPath(fld.Path, _
FileName))
nFiles = nFiles + 1
List1.AddItem fso.BuildPath(fld.Path, FileName) ' Load ListBox
FileName = Dir() ' Get next file
DoEvents
Wend
Label1 = "Searching " & vbCrLf & fld.Path & "..."
nDirs = nDirs + 1
If fld.SubFolders.Count > 0 Then
For Each tFld In fld.SubFolders
DoEvents
FindFile = FindFile + FindFile(tFld.Path, sFile, nDirs, nFiles)
Next
End If
Exit Function
Catch: FileName = ""
Resume Next
End Function
Execute o projeto e, em seguida, clique em Command1 .
Digite o diretório e o nome de arquivo para procurar. Observe que, quando cada arquivo é encontrado, o nome do arquivo é adicionado à caixa de listagem. Quando o processo for concluído, o número de arquivos que são encontrados é exibido em uma caixa de mensagem. O tamanho total dos arquivos também é exibido.
Alguns arquivos e diretórios, como informações de volume do sistema no Microsoft Windows XP, causar uma violação de acesso se um aplicativo tenta acessá-los. O código de tratamento de erro pára de procurar um diretório quando ocorre um problema. Você deve usar uma abordagem diferente se você deve ter uma solução mais robusta.
Se você usar um filtro de arquivo (como *. *), um grande número de arquivos pode ser retornado. O controle ListBox só pode conter um número limitado de caracteres. Quando esse limite é alcançado, há mais entradas são adicionadas à caixa de listagem.
Este exemplo de código foi testado usando a versão 5.6.0.6626 do Microsoft Scripting Runtime (Scrrun.dll). Se ocorrerem problemas, talvez seja necessário baixar uma versão mais recente deste arquivo.
Para obter informações adicionais sobre outros métodos que você pode usar para localizar um arquivo específico, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
185476
(http://support.microsoft.com/kb/185476/EN-US/
)
COMO: Procurar Directórios para localizar ou listar ficheiros
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 185601
(http://support.microsoft.com/kb/185601/en-us/
)
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.