VBA GetFolder e GetFile (obter propriedades de arquivo e pasta)

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.

wave wave wave wave wave