Właściwości pliku

GetFile to jedna z metod obiektu FileSystem.Object.

Ma jeden parametr wejściowy:

    • filespec– pełna nazwa pliku
      Argument obowiązkowy.

Za pomocą tej metody można odczytać następujące właściwości pliku:

    • Name – nazwa folderu.
    • Path – ścieżka do folderu.
    • Size– rozmiar wszystkich plików folderze.
    • DateCreated– data utworzenia.
    • DateLastModified– data ostatniej modyfikacji.
    • ParentFolder– folder nadrzędny.

Lista podfolderów w katalogu

W jaki sposób wylistować listę podfolderów w katalogu?  Jednym z lepszych sposobów jest wykorzystanie metody FileSystemObject.GetFolder

Załóżmy, że mamy taki taki układ folderów (przykład z mojego dysku):

kliknij, aby powiększyć

Katalog z listą podfolderów można wylistować w komórkach Excela do takiej postaci:

kliknij, aby powiększyć

Przykładowy kod może wyglądać tak:

Public Sub Foldery()
Dim FSO As Object
Dim Folder As Object
Dim Podfolder As Object
Dim JNazwa As String
Dim NF As String
Dim i As Long
Dim k As Long
Set FSO = CreateObject(„Scripting.FileSystemObject”)
Set Folder = FSO.GetFolder(Range(„A2”).Value)
i = 2
For Each Podfolder In Folder.SubFolders
i = i + 1
JNazwa = Podfolder.Name
Cells(i, 2) = JNazwa
i = Podfoldery(Folder & „\” & JNazwa, 3, i)
Next Podfolder
End Sub
_________________________________

Public Function Podfoldery(JF As String, k As Long, w As Long)
Dim FSOP As Object
Dim FolderP As Object
Dim PodfolderP As Object
Dim JNazwaP As String
Set FSOP = CreateObject(„Scripting.FileSystemObject”)
Set FolderP = FSOP.GetFolder(JF)
For Each PodfolderP In FolderP.SubFolders
w = w + 1
JNazwaP = PodfolderP.Name
Cells(w, 3) = JNazwaP
Next PodfolderP
Podfoldery = w
Set FolderP = Nothing
Set FSOP = Nothing
End Function

Oczywiście kod można rozbudować do wylistowania kolejnych poziomów. 
Jeśli trzeba – mogę pomóc. 


A tu możesz mi postawić kawę: 

buycoffee.to/marzatela

 

Właściwości folderu

GetFolder to jedna z częściej wykorzystywanych metod obiektu FileSystem.Object.

Ma jeden parametr wejściowy:

    • folderspec– ścieżka do konkretnego obiektu.
      Argument obowiązkowy.

Za pomocą tej metody można odczytać następujące właściwości folderu:

    • Name – nazwa folderu.
    • Path – ścieżka do folderu.
    • Size– rozmiar wszystkich plików folderze.
    • DateCreated– data utworzenia.
    • DateLastModified– data ostatniej modyfikacji.
    • DateLastAccess– data ostatniego otwarcia.
    • ParentFolder– folder nadrzędny.
    • Files– kolekcja plików w folderze.
    • SubFolders– kolekcja podfolderów.

Przenoszenie pliku

Jak szybko przenieść czyli usunąć w jednym miejscu i przenieść w inne miejsce na dysku) plik? Jednym ze  sposobów  jest wykorzystanie obiektu FileSystem.Object.
Służy do tego metoda FileSystem.Object.MoveFile
Ma ona kilka parametrów wejściowych:

    • Object – nazwa obiektu zdefiniowanego jako obiekt FSO. Argument obowiązkowy.
    • Source – nazwa pliku do skopiowania. Argument obowiązkowy, ale dozwolone są znaki zastępcze w nazwie.
    • Destination – nazwa pliku po przeniesieniu. Argument obowiązkowy.

Zarówno stara jak i nowa nazwa pliku musi być pełna czyli z z dokładnym podaniem dysku i katalogu.

Przykładowy kod  może wyglądać tak:

Public Sub PrzeniesPlik()
Dim FSO As Object
Dim StaryPlik As String
Dim
NowyPlik As String
StaryPlik = „C:\Folder1\plik.png”
NowyPlik = „C:\Folder2\plik.png”
Set FSO = CreateObject(„Scripting.FileSystemObject”)
FSO.MoveFile StaryPlik, NowyPlik
Set FSO = Nothing
End Sub

Warto też  wcześniej zwrócić uwagę na sprawdzenie, czy plik do przeniesienia istnieje. Jeżeli nie, to w trakcie wykonywania procedury wystąpi błąd wykonania 53.


Kurs Excel - makra i VBA dla początkujących

 

Kopiowanie pliku

Jak szybko skopiować dowolny plik? Sposobów jest kilka, jednym z nich jest wykorzystanie obiektu FileSystem.Object.
Służy do tego metoda FileSystem.Object.Copy
Ma ona kilka parametrów wejściowych:

    • Object – nazwa obiektu zdefiniowanego jako obiekt FSO. Argument obowiązkowy.
    • Source – nazwa pliku do skopiowania. Argument obowiązkowy, ale dozwolone są znaki zastępcze w  nazwie.
    • Destination – nazwa pliku po skopiowaniu. Argument obowiązkowy.
    • Overwrite – opcjonalny argument typu Boolean. Jeżeli kopiowany plik ma być zapisany pod nazwą już istniejącego pliku, wartość False nie skopiuje pliku. Domyślna wartość True, zastąpi plik plikiem kopiowany.

Przykładowy kod kopiujący plik może wyglądać tak:

Public Sub KopiujPlik()
Dim FSO As Object
Dim KopiowanyPlik As String
Dim
NowyPlik As String
KopiowanyPlik= „C:\Wprawki\PrzykladowaBaza.accdb”
NowyPlik= „C:\NaBlogi\PrzykladowaBaza.accdb”
Set FSO=CreateObject(„Scripting.FileSystemObject”)
FSO.Copy  KopiowanyPlik, NowyPlik, True
Set FSO=Nothing
End Sub