Este tutorial demonstrará como usar os métodos GetFolder e GetFile do FileSystemObject.
Obtenha propriedades de pasta e arquivo com VBA FileSystemObject
O método GetFolder retorna um objeto Folder correspondente à pasta em um caminho especificado e permite acessar suas propriedades. O método GetFile faz o mesmo com o arquivo especificado.
Definir Referência VBA
Primeiro, ao usar FileSystemObjects, você pode ter que definir uma referência para a biblioteca de tempo de execução de script VB: abra o Editor do Visual Basic (ALT + F11), selecione Ferramentas> Referências no menu suspenso e marque a caixa de seleção de 'Microsoft Scripting Runtime'.
FileSystemObject
Em segundo lugar, você deve criar o FileSystemObject:
12 | Dim FSO As New FileSystemObjectDefina FSO = CreateObject ("Scripting.FileSystemObject") |
Agora você tem acesso a GetFolder e aos outros métodos FileSystemObject.
Uso do método GetFolder
Depois de especificar a pasta que deseja acessar
1 | Defina fld = FSO.GetFolder ("C: \ Src \") |
você pode copiá-lo:
1 | fld.Copy "C: \ NewFolder \" |
Mova isso:
1 | fld.Move "C: \ NewFolder \" |
delete isso:
1 | fld.Delete |
ou crie um novo arquivo de texto nele:
1 | fld.CreateTextFile “NewTextFile.txt" |
Ao usar este método, você obtém acesso às propriedades da pasta como seus atributos (fld.Attributes), a data e a hora em que foi criada (fld.DateCreated), último acesso (fld.DateLastAccessed), última modificação (fld.DateLastModified ), a letra de sua unidade (fld.Drive), seu nome e nome abreviado (fld.Name, fld.ShortName), seu caminho e caminho curto (fld.Path, fld.ShortPath), seu tamanho (fld.Size), seu digite (fld.Type), sua pasta pai (fld.ParentFolder), verifique se é uma pasta raiz (fld.IsRootFolder) ou você pode percorrer, contar, etc. seus arquivos (fld.Files) ou subpastas (fld. Subpastas).
Juntar tudo isso em um procedimento ficaria assim:
123456789101112131415161718192021222324 | Sub FSOGetFolder ()Dim FSO As New FileSystemObjectDefina FSO = CreateObject ("Scripting.FileSystemObject")Defina fld = FSO.GetFolder ("C: \ Src \")Debug.Print fld.DateCreatedDebug.Print fld.DriveDebug.Print fld.NameDebug.Print fld.ParentFolderDebug.Print fld.PathDebug.Print fld.ShortPathDebug.Print fld.SizeDebug.Print fld.Files.CountDebug.Print fld.TypePara cada dobra em fld.SubFoldersDebug.Print fold.NamePróxima dobraPara cada arquivo em fld.FilesDebug.Print fil.NamePróximo filEnd Sub |
Observe que você deve pressionar Ctrl + G para ver o resultado do comando Debug.Print na janela imediata do VBA.
Método GetParentFolderName
Como alternativa à forma mencionada acima, você pode acessar o nome da pasta pai de uma pasta usando este código:
1234 | Dim FSO As New FileSystemObjectDefina FSO = CreateObject ("Scripting.FileSystemObject")ParentFold = FSO.GetParentFolderName ("C: \ ParentTest \ Test \") |
ParentFold será neste caso “C: \ ParentTest \”.
Observe que este método não resolverá o caminho, nem verifica a existência do caminho especificado.
Método GetSpecialFolder
Com o método GetSpecialFolder, passando 0, 1 ou 2 como argumento, você pode obter o caminho da pasta do Windows (com arquivos instalados pelo sistema operacional Windows), caminho da pasta do sistema (com bibliotecas, fontes e drivers de dispositivo) e temporário caminho da pasta (a pasta que é usada para armazenar arquivos temporários), respectivamente.
1234567 | Sub FSOGetSpecialFolder ()Dim FSO As New FileSystemObjectDefina FSO = CreateObject ("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder (0) ‘O resultado pode ser: C: \ Windows \ System32End Sub |
Método GetFile
Você pode usar o método GetFile de maneira muito semelhante ao método GetFolder. Depois de especificar o arquivo que deseja acessar
1 | Definir fil = FSO.GetFile ("C: \ Src \ Test.xlsx") |
você pode copiá-lo:
1 | fil.Copy "C: \ Dst \" |
Mova isso:
1 | fil.Move "C: \ Dst \" |
delete isso:
1 | fil.Delete |
ou abra-o como um objeto TextStream:
1 | fil.OpenAsTextStream |
As propriedades do arquivo, como seus atributos, a data e hora em que foi criado, último acesso ou última modificação, letra da unidade, nome e abreviação, caminho e caminho curto, tamanho, tipo e sua pasta pai podem ser acessados da mesma forma conforme descrito no método GetFolder.