Folder, sama seperti objek lain pada FileSystemObject, juga mempunyai properti. Untuk melihat properti sebuah folder di Windows Explorer, kita bisa memilih sembarang folder, lalu klik mouse kanan untuk menampilkan menu shortcut dan pilih Properties di menu ini. Cara lainnya, setelah memilih sembarang folder, kita bisa menekan menu File dan pilih Properties.
Merinci Isi Properti Folder
Untuk mengetahui dan merinci properti sebuah folder dengan menggunakan VBA di Access, kita harus menggunakan objek folder yang merupakan salah satu komponen pada FileSystemObject. Adapun properti yang ada dalam objek folder adalah sebagai berikut:
Properti | Deskripsi |
Attributes
| Atribut pada sebuah folder, bisa berupa Hidden, Read only, Compressed, dan Archive. VBA menampilkan atribut dalam bentuk Bitmap, yaitu berupa angka yang merupakan penjumlahan dari masing-masing atribut. Penjelasan lebih rinci ada di bawah. |
DateCreated | Tanggal saat folder dibuat. |
DateLastAccessed | Tanggal saat terakhir kali isi dari folder diakses. |
DateLastModified | Tanggal saat terakhir kali seorang pengguna memodifikasi folder. |
Drive | Menunjukan lokasi drive yang diikuti tanda titik dua, tempat sebuah folder itu berada. |
Files | Berupa array yang berisi file yang berada di sebuah folder. Lihat penjelasannya di bawah. |
IsRootFolder | Menunjukkan apakah sebuah folder merupakan root folder (misalnya: C:\). Bernilai True bila folder itu merupakan root folder dan False bila bukan. |
Name | Nama folder, tidak termasuk informasi path. Contohnya: folder C:\Windows\System32, maka nama foldernya adalah System32. |
ParentFolder | Nama folder tempat sebuah folder disimpan. Misalnya: Parent Folder untuk folder C:\Windows\System32 adalah C:\Windows, Parent Folder untuk C:\Program Files adalah C:\. |
Path | Nama path yang ada di sebuah folder misalnya C:\Windows\System32. |
ShortName | Nama konvensioanl sebuah folder dengan menggunakan format lama sistem operasi MS-DOS, terdiri dari 8 karakter. Contohnya, folder Internet Explorer pada C:\Program Files\Internet Explorer mempunyai nama konvesional INTERN~1 sehingga akan tertulis C:\PROGRA~1\INTERN~1. |
ShortPath | Nama konvensioanl sebuah path folder dengan menggunakan format lama sistem operasi MS-DOS, terdiri dari 8 karakter. Contohnya, path C:\Program Files\Internet Explorer mempunyai nama konvesional C:\PROGRA~1\INTERN~1. |
Size | Jumlah ukuran total sebuah folder yang dinyatakan dalam satuan byte, meliputi jumlah total byte dari file yang tersimpan di folder maupun subfolder ini. |
SubFolders | Menunjukkan jumlah subfolder yang langsung berada di bawah folder. Jumlah subfolder yang berada di dalam subfolder tidak dihitung. |
Type |
Menunjukkan tipe folder.
|
Properti Files dan Subfolders berupa array yang disebut koleksi atau sekumpulan file dan subfolder, jadi kita harus menambahkan properti untuk setiap koleksi yang berhubungan dengan Files dan Subforders. Properti untuk koleksi itu misalnya count, item, dan application.
Kode VBA Untuk Merinci Properti Folder
Untuk merinci properti folder, kita bisa menggunakan kode VBA sebagai berikut:
Function aksesPropertiFolder(strFolder As String)
Dim objFSO, objFolder As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(strFolder) Then
MsgBox "Folder " & strFolder & " tidak ada."
Exit Function
End If
Set objFolder = objFSO.GetFolder(strFolder)
Debug.Print "Nama Folder: " & objFolder.Name
Debug.Print "Tanggal Pembuatan: " & objFolder.DateCreated
Debug.Print "Tanggal dan waktu terakdir di akses: " & objFolder.DateLastAccessed
Debug.Print "Tgl dan waktu terakhir dimodifikasi: " & objFolder.DateLastModified
Debug.Print "Drive: " & objFolder.Drive
Debug.Print "Apakah merupakan root folder: " & objFolder.IsRootFolder
Debug.Print "Nama Parent folder: " & objFolder.ParentFolder
Debug.Print "Nama Path: " & objFolder.Path
Debug.Print "Nama Folder versi MS DOS: " & objFolder.ShortName
Debug.Print "Nama Path versi MS DOS: " & objFolder.ShortPath
Debug.Print "Total File di folder ini: " & objFolder.Files.Count
Debug.Print "SubFolders: " & objFolder.SubFolders.Count
Debug.Print "Ukuran: " & konversiBytes(objFolder.Size)
Debug.Print "Tipe: " & objFolder.Type
Debug.Print "Atribut: " & objFolder.Attributes
Set objFolder = Nothing
Set objFSO = Nothing
End Function
Mengetahui Atribut Folder
Bila memilih sebuah folder yang ada di Windows Explorer lalu mengklik mouse kanan dan memilih Properties, maka kita akan mengetahui atribut apa saja yang melekat pada folder itu. Atribut sebuah folder dapat berupa:
- Read-only
- Hidden
- Ready for archiving
- Compressed
FileSystemObject yang ada di Access VBA dapat digunakan untuk merinci attribut folder yang dinyatakan dengan angka. Angka itu adalah sebagai berikut:
Atribut | Nilai | Deskripsi |
Hidden | 2 | Folder tidak terlihat, kecuali pengaturan "Hidden" dibuat terlihat (visible). |
System | 4 | Folder yang digunakan untuk Sistem Operasi. |
Directory | 16 | Nilai standar yang dibaca melalui FileSystemObject dan dipergunakan di semua folder. |
Archive | 32 | Folder ini digunakan oleh program backup untuk menentukan folder dan file yang perlu dibackup. |
Compressed | 2048 | Folder ini telah melalui proses kompresi yang dilakukan Windows OS. |
Walau terlihat sederhana, nilai atribut folder yang ditampilkan melalui FileSystemObject tidak seperti itu. Bila kita mencoba menampilkan atribut sebuah folder, nilainya mungkin 20, 48, dan sebagainya yang tidak ada dalam tabel di atas. Nilai yang diperoleh dari FileSystemObject dinyatakan dalam bitmap. Bitmap bukan merupakan format gambar seperti bitmap image, tetapi merupakan cara bagaimana data disimpan dan ditampilkan.
|
Gambar 1. Atribut folder TesFolder bernilai 18, jumlah total dari nilai Read Only dan Hidden. |
Pada Gambar 1, folder TesFolder1 mempunyai properti Attributes Read Only dan Hidden. Saat kita menjalankan fungsi aksesPropertiFolder untuk TesFolder1, maka Attributes mempunyai nilai 18. Nilai ini adalah jumlah dari Hidden (=2) dan Directory untuk Read Only (=16)
Bila atribut Folder is ready for archiving juga diberi tanda centang, seperti tampak pada gambar di bawah, maka fungsi aksesPropertiFolder untuk TesFolder1 akan memberikan hasil sama dengan 50. Hasil ini merupakan penjumlahan nilai dari Hidden (=2), Directory untuk Read Only (=16), dan Archive (=32).
|
Gambar 2 Tambahan atribut Folder is ready for archiving |
Bitmap dirancang sedemikian rupa sehingga hanya ada satu hasil untuk menyatakan satu atau lebih dari nilai atribut. Berbagai macam kombinasi atribut seperti tertera pada tabel tak akan pernah menghasilkan nilai yang sama. Sebagai contoh, nilai 18 dan 50 pada atribut TesFolder1 di atas pasti berasal dari atribut yang berbeda-beda.
Untuk menentukkan atribut yang melekat pada sebuah folder, FileSystemObject dapat memberitahu kita rincian dari setiap atribut yang mungkin dari sebuah folder, caranya adalah sebagai berikut:
Untuk menentukan sebuah folder yang mempunyai atribut Hidden, maka kode VBA FileSyetemObject adalah:
If objFolder.Attributes AND 2 Then
Debug.Print "Folder disembunyikan"
End If
Secara lengkap, kode VBA untuk menampilkan Attributes folder adalah sebagai berikut (dalam contoh ini menggunakan folder TesFolder1):.
Function atributFolder(strFolder As String)
Dim objFSO, objFolder As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(strFolder) Then
MsgBox "Folder " & strFolder & " tidak ada."
Exit Function
End If
Set objFolder = objFSO.GetFolder(strFolder)
If objFolder.Attributes And 2 Then
Debug.Print "Hidden"
End If
If objFolder.Attributes And 4 Then
Debug.Print "System"
End If
If objFolder.Attributes And 16 Then
Debug.Print "Read Only"
End If
If objFolder.Attributes And 32 Then
Debug.Print "Folder is ready for archiving"
End If
If objFolder.Attributes And 2048 Then
Debug.Print "Compress contents to save disk space"
End If
Set objFolder = Nothing
Set objFSO = Nothing
End Function
Bila fungsi dijalankan, hasilnya tampak seperti gambar di bawah ini.
|
Gambar 3. Konversi atribut dari Bitmap ke teks yang mudah dipahami |
Mengetahui Properti Files dan Subfolders dari Sebuah Folder
Properti files dari sebuah folder berisi sekumpulan file yang tersimpan dalam folder itu. Kita dapat merinci maupun menghitung total jumlah file yang ada dalam folder itu. Berikut ini adalah kode yang diperlukan untuk merinci dan menghitung total file dalam sebuah folder dengan menggunakan Access VBA dan FileSystemObject.
Function propertiFilesFolder(strFolder As String)
Dim objFSO, objFolder, objFile As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(strFolder) Then
MsgBox "Folder " & strFolder & " tidak ada."
Exit Function
End If
Set objFolder = objFSO.GetFolder(strFolder)
Debug.Print "Total File di folder ini: " & objFolder.Files.Count
For Each objFile In objFolder.Files
Debug.Print vbTab & objFile.Name
Next
Set objFolder = Nothing
Set objFSO = Nothing
End Function
Cara yang sama dapat kita gunakan untuk merinci properti subfolders. Berikut ini adalah caranya:
Function propertiSubFolder(strFolder As String)
Dim objFSO, objFolder, objSubFolder As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(strFolder) Then
MsgBox "Folder " & strFolder & " tidak ada."
Exit Function
End If
Set objFolder = objFSO.GetFolder(strFolder)
Debug.Print "Total subfolder di folder ini: " & objFolder.SubFolders.Count
For Each objSubFolder In objFolder.SubFolders
Debug.Print vbTab & objSubFolder.Name
Next
Set objFolder = Nothing
Set objFSO = Nothing
End Function
siap pak yanto, saya pelajari terlebih dahulu..
ReplyDelete