VBA GetFolder i GetFile (Pobierz właściwości plików i folderów)

W tym samouczku zademonstrujemy, jak używać metod GetFolder i GetFile obiektu FileSystemObject.

Uzyskaj właściwości folderów i plików za pomocą VBA FileSystemObject

Metoda GetFolder zwraca obiekt Folder odpowiadający folderowi w określonej ścieżce i umożliwia dostęp do jego właściwości. Metoda GetFile robi to samo z określonym plikiem.

Ustaw odniesienie VBA

Po pierwsze, podczas korzystania z FileSystemObjects może być konieczne ustawienie odwołania do biblioteki wykonawczej skryptu VB: otwórz Edytor Visual Basic (ALT+F11), wybierz z menu rozwijanego Narzędzia > Odwołania i zaznacz pole wyboru 'Microsoft Scripting Runtime'.

Obiekt systemu plików

Po drugie, musisz utworzyć FileSystemObject:

12 Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")

Teraz masz dostęp do GetFolder i innych metod FileSystemObject.

Korzystanie z metody GetFolder

Po określeniu folderu, do którego chcesz uzyskać dostęp

1 Ustaw fld = FSO.GetFolder("C:\Src\")

możesz to skopiować:

1 fld.Copy "C:\NowyFolder\"

rusz to:

1 fld.Przenieś "C:\NowyFolder\"

Usuń to:

1 fld.Usuń

lub utwórz w nim nowy plik tekstowy:

1 fld.CreateTextFile “NowyTextFile.txt”

Korzystając z tej metody, uzyskujesz dostęp do właściwości folderu, takich jak jego atrybuty (fld.Attributes), data i godzina utworzenia (fld.DateCreated), ostatni dostęp (fld.DateLastAccessed), ostatnia modyfikacja (fld.DateLastModified ), literę dysku (fld.Drive), jego nazwę i krótką nazwę (fld.Name, fld.ShortName), jego ścieżkę i krótką ścieżkę (fld.Path, fld.ShortPath), jego rozmiar (fld.Size), jego wpisz (fld.Type), jego folder nadrzędny (fld.ParentFolder), sprawdź, czy jest to folder główny (fld.IsRootFolder), czy możesz przeglądać, liczyć itp. jego pliki (fld.Files) lub podfoldery (fld. podfoldery).

Połączenie tego wszystkiego w jedną procedurę wyglądałoby tak:

123456789101112131415161718192021222324 Sub FSOGetFolder()Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")Ustaw fld = FSO.GetFolder("C:\Src\")Debug.Print fld.Data utworzeniaDebug.Print fld.DriveDebug.Drukuj fld.NameDebug.Print fld.ParentFolderDebuguj.Drukuj fld.PathDebug.Print fld.ShortPathDebug.Drukuj fld.RozmiarDebug.Print fld.Files.CountDebug.Drukuj fld.TypeDla każdego zgięcia w fld.SubFoldersDebug.Drukuj fold.NazwaNastępne złożenieDla każdego pliku w fld.PlikiDebug.Drukuj.Nazwa plikuNastępny plikNapis końcowy

Należy pamiętać, że należy nacisnąć Ctrl + G, aby zobaczyć wynik polecenia Debug.Print w bezpośrednim oknie VBA.

Metoda GetParentFolderName

Alternatywnie do wyżej wymienionego sposobu możesz uzyskać dostęp do nazwy folderu nadrzędnego folderu za pomocą tego kodu:

1234 Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")ParentFold= FSO.GetParentFolderName("C:\ParentTest\Test\")

ParentFold będzie w tym przypadku „C:\ParentTest\”.

Należy pamiętać, że ta metoda nie rozwiązuje ścieżki ani nie sprawdza istnienia określonej ścieżki.

Metoda GetSpecialFolder

Dzięki metodzie GetSpecialFolder, przekazując 0, 1 lub 2 jako argument, możesz uzyskać ścieżkę folderu Windows (z plikami zainstalowanymi przez system operacyjny Windows), ścieżkę folderu systemowego (z bibliotekami, czcionkami i sterownikami urządzeń) i tymczasowe ścieżka folderu (folder używany do przechowywania plików tymczasowych).

1234567 Sub FSOGetSpecialFolder()Dim FSO jako nowy obiekt systemu plikówUstaw FSO = CreateObject("Scripting.FileSystemObject")Debug.Print FSO.GetSpecialFolder(0) 'Wynik może być: C:\Windows\System32Napis końcowy

Metoda GetFile

Metody GetFile można używać w bardzo podobny sposób, jak metody GetFolder. Po określeniu pliku, do którego chcesz uzyskać dostęp

1 Ustaw plik = FSO.GetFile("C:\Src\Test.xlsx")

możesz to skopiować:

1 fil.Kopiuj "C:\Dst\"

rusz to:

1 fil.Przenieś "C:\Dst\"

Usuń to:

1 fil.Usuń

lub otwórz go jako obiekt TextStream:

1 fil.OpenAsTextStream

Właściwości pliku, takie jak jego atrybuty, data i godzina utworzenia, ostatni dostęp lub ostatnia modyfikacja, litera dysku, nazwa i krótka nazwa, ścieżka i krótka ścieżka, rozmiar, typ i jego folder nadrzędny można uzyskać w ten sam sposób zgodnie z opisem w metodzie GetFolder.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave