Skip to main content

Menampilkan Atribut File Menggunakan FileSystemObject di Access

Seperti telah dijelaskan di posting terdahulu yang berjudul Menampilkan Properti File dengan Menggunakan FileSystemObject di Access, sebuah file mempunyai atribut yang nilainya mempunyai tipe Bitmap, sama seperti tipe Bitmap pada atribut folder. Bitmap bukan merupakan format gambar seperti bitmap image, tetapi merupakan cara bagaimana data disimpan dan ditampilkan.

Dengan menggunakan FileSystemObject, kita bisa menampilkan atribut itu, bahkan bisa memodifikasinya. Adapun atribut sebuah file adalah sebagai berikut:
Atribut Nilai Keterangan
Normal 0 File tanpa atribut.
Read-only 1 File yang bisa dibaca, tetapi tidak bisa dimodifikasi.
Hidden 2 File tidak terlihat melalui Windows Explorer.
System 4 File yang dibutuhkan oleh sistem operasi.
Archive 32 File is flagged as requiring backup.
Alias 64 File merupakan sebuah shortcut.
Compressed 2048 File yang dikompresi.
Bitmap dirancang sedemikian rupa sehingga hanya ada satu hasil untuk menyatakan satu atau lebih dari nilai Attributes. Berbagai macam kombinasi Attributes seperti tertera pada tabel di atas. Jadi, misalnya sebuah file yang mempunyai nilai properti atribut adalah 33, maka file itu mempunyai atribut read-only (1) dan archive (32) yang totalnya sama dengan 33.

Untuk menampilkan atribut sebuah file dengan FileSystemObject, kita harus menggunakan metode GetFile terlebih dulu supaya sebuah file bisa diakses. Setelah itu, operator logika AND digunakann untuk menampilkan atribut file. Bila sebuah file tidak mempunyai atribut sama sekali, maka nilai yang dihasilkan melalui operator logika AND itu adalah 0.
Gambar 1. Atribut file hidden (2), system (4), dan archive (32)

Sebagai contoh, kode VBA berikut ini mengakses file yang bernama D:\SoftwareAkuntansi\Thumbs.db dan kemudian memeriksa apakah ada atribut yang sesuai dengan file itu.
Function atributFile()
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFile = objFSO.GetFile("D:\SoftwareAkuntansi\Thumbs.db")
  If objFile.Attributes And 0 Then
    Debug.Print "Atribut tidak ada"
  End If
  If objFile.Attributes And 1 Then
    Debug.Print "Read-only"
  End If
  If objFile.Attributes And 2 Then
    Debug.Print "Hidden"
  End If
  If objFile.Attributes And 4 Then
    Debug.Print "System"
  End If
  If objFile.Attributes And 32 Then
    Debug.Print "Archive bit set."
  End If
  If objFile.Attributes And 64 Then
    Debug.Print "Link/shortcut"
  End If
  If objFile.Attributes And 2048 Then
    Debug.Print "Compressed"
  End If
End Function
Bila dieksekusi di Immediate Window, hasilnya seperti berikut ini:
?atributFile
Hidden
System
Archive bit set.
Untuk sekedar melakukan eksperimen, kita dapat mengganti nama file D:\SoftwareAkuntansi\Thumbs.db di dalam kode di atas sesuai dengan keinginan.

Mengganti Atribut File

Dengan FileSystemObject, kita juga bisa mengganti atribut sebuah file seperti berikut ini:
  • ReadOnly
  • Hidden
  • System
  • Archive
Langkah-langkah untuk mengganti atribut sebuah file:
  1. Akses file yang ingin diganti dengan menggunakan metode GetFile.
  2. Memeriksa atribut yang ingin diganti. Sebagai contoh, bila ingin membuat sebuah file beratribut read-only, maka kita harus memeriksa terlebih dahulu apakah file itu sudah beratribut read-only. Jika belum, maka kita menggunakan operator logika XOR untuk menggantinya.

Gambar 2. Atribut file read-only (1) dan archive (32)
Kode VBA di bawah ini digunakan untuk mengubah atribut ke arah sebaliknya pada sebuah file yang bernama D:\SoftwareAkuntansi\properti-file-2.png, jika file ini mempunyai atribut read-only (ada nilai 1), maka atribut read-only dihilangkan. Sebaliknya, jika file ini tidak mempunyai atribut read-only, maka atribut read-only dimunculkan (diberi nilai 1).
Function gantiAtribut()
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFile = objFSO.GetFile("D:\SoftwareAkuntansi\properti-file-2.png")
  If (objFile.Attributes And 1) Or (Not (objFile.Attributes And 1)) Then
    objFile.Attributes = objFile.Attributes Xor 1
  End If
End Function
Untuk menghilangkan/menghapus semua atribut dalam sebuah file secara serentak, maka kode VBA yang dibutuhkan adalah sebagai berikut:
objFile.Attributes = objFile.Attributes AND 0
Untuk sekedar melakukan eksperimen, kita dapat mengganti nama file D:\SoftwareAkuntansi\properti-file-2.png di dalam kode di atas sesuai dengan keinginan.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access