Olá pessoal!
Encontrei um código aqui no fórum e inseri em um projeto meu, porém, o código não está extraindo todos os arquivos do diretório "C:\Windows\", extraí apenas 15% dos arquivos existentes na pasta do Windows. Eu abri o Explorer pra tentar achar algum problema nas subpastas e algumas delas eu não podia abrir, apareceu uma mensagem dizendo "você não tem permissão para acessar esta pasta". Então eu entrei nas propriedades da pasta e alterei as permissões de usuário, só depois consegui abrir a pasta. Não sei se esse é o problema, mas foi a única coisa que observei de diferente.
O código que estou usando para a rotina é o seguinte:
Public Function ContaFicheirosExtraiNome(strCaminho As String, strIncluiSubPastas As Boolean)
'By JPaulo ® Maximo Access
'Requer a seguinte referência VBA ativa:
'Microsoft Scripting Runtime
'Para chamar a função, deve colocar no pressionar de um botão: Call ContaFicheirosExtraiNome("C:\SuaPasta\",True)
Dim FSO As Object, strPasta As Object, strSubPasta As Object, strFicheiro As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set strPasta = FSO.GetFolder(strCaminho)
'Percorre a drive e extraí o nome das pastas, subPastas e ficheiros
For Each strFicheiro In strPasta.Files
'Insere nas tabelas os dados completos dos ficheiros encontrados com as extensões
CurrentDb.Execute "INSERT INTO tblArquivos (URL, NomeArq, TamArq, DataC, DataM, DataA, TipoArq) SELECT '" & strPasta.Path & "\" & "', '" & strFicheiro.Name & "', '" & strFicheiro.Size / 1000 & "', '" & Format(strFicheiro.DateCreated, "dd/mm/yyyy") & "', '" & Format(strFicheiro.DateLastModified, "dd/mm/yyyy") & "', '" & Format(strFicheiro.DateLastAccessed, "dd/mm/yyyy") & "', '" & strFicheiro.Type & "'"
Next strFicheiro
'Se existirem subpastas, insere na tabela o caminho completo dos ficheiros
If strIncluiSubPastas = True Then
For Each strSubPasta In strPasta.SubFolders
ContaFicheirosExtraiNome strSubPasta.Path, True
Next strSubPasta
End If
Set strFicheiro = Nothing
Set strPasta = Nothing
End Function
Se alguém souber qual o problema que impede que o código extraia 100% doas arquivos existentes numa determinada pasta, ficarei grato se puder me ajudar.
Utilizo:
Access 2007
Windows 7
Obrigado!
Encontrei um código aqui no fórum e inseri em um projeto meu, porém, o código não está extraindo todos os arquivos do diretório "C:\Windows\", extraí apenas 15% dos arquivos existentes na pasta do Windows. Eu abri o Explorer pra tentar achar algum problema nas subpastas e algumas delas eu não podia abrir, apareceu uma mensagem dizendo "você não tem permissão para acessar esta pasta". Então eu entrei nas propriedades da pasta e alterei as permissões de usuário, só depois consegui abrir a pasta. Não sei se esse é o problema, mas foi a única coisa que observei de diferente.
O código que estou usando para a rotina é o seguinte:
Public Function ContaFicheirosExtraiNome(strCaminho As String, strIncluiSubPastas As Boolean)
'By JPaulo ® Maximo Access
'Requer a seguinte referência VBA ativa:
'Microsoft Scripting Runtime
'Para chamar a função, deve colocar no pressionar de um botão: Call ContaFicheirosExtraiNome("C:\SuaPasta\",True)
Dim FSO As Object, strPasta As Object, strSubPasta As Object, strFicheiro As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set strPasta = FSO.GetFolder(strCaminho)
'Percorre a drive e extraí o nome das pastas, subPastas e ficheiros
For Each strFicheiro In strPasta.Files
'Insere nas tabelas os dados completos dos ficheiros encontrados com as extensões
CurrentDb.Execute "INSERT INTO tblArquivos (URL, NomeArq, TamArq, DataC, DataM, DataA, TipoArq) SELECT '" & strPasta.Path & "\" & "', '" & strFicheiro.Name & "', '" & strFicheiro.Size / 1000 & "', '" & Format(strFicheiro.DateCreated, "dd/mm/yyyy") & "', '" & Format(strFicheiro.DateLastModified, "dd/mm/yyyy") & "', '" & Format(strFicheiro.DateLastAccessed, "dd/mm/yyyy") & "', '" & strFicheiro.Type & "'"
Next strFicheiro
'Se existirem subpastas, insere na tabela o caminho completo dos ficheiros
If strIncluiSubPastas = True Then
For Each strSubPasta In strPasta.SubFolders
ContaFicheirosExtraiNome strSubPasta.Path, True
Next strSubPasta
End If
Set strFicheiro = Nothing
Set strPasta = Nothing
End Function
Se alguém souber qual o problema que impede que o código extraia 100% doas arquivos existentes numa determinada pasta, ficarei grato se puder me ajudar.
Utilizo:
Access 2007
Windows 7
Obrigado!