Skip to main content

Menampilkan Properti File dengan Menggunakan FileSystemObject di Access

Setiap file mempunyai sejumlah properti yang berguna dalam pengaturan sistem file. Sebagai misal, properti Type akan menampilan jenis file berdasarkan ekstensinya, contoh: .docx adalah ekstensi untuk file MS Word, .accdb adalah ekstensi file untuk MS Access, .php adalah ekstensi file untuk PHP, dan sebagainya. Properti DateLastAccessed menunjukkan tanggal terakhir seseorang membuka sebuah file. Properti ini berguna untuk menentukan apakah file (terutama file untuk dokumen seperti MS word, Excel, Power Point, dsb.) yang tersimpan dalam Hard disk masih sering digunakan/dibuka atau tidak. Bila tidak, maka file yang jarang dibuka itu sebaiknya dipindahkan ke media penyimpanan yang lain, seperti CD. Dengan memindahkan file yang jarang dibuka tetapi masih dianggap penting, maka kita bisa sedikit mengosongkan Hard disk untuk menyimpan file lainnya.
Pada dasarnya, seorang pemula dapat mengakses properti file dengan menggunakan perangkat yang dapat berupa Windows Explorer atau Command-Line. Walaupun bisa memberikan informasi file yang tersimpan di hard disk sebuah komputer, tetapi perangkat itu tidak dirancang untuk menyimpan data atau bekerja di dalammnya. Selain itu, beberapa perangkat mempunyai keterbatasan yang menyulitkan kita untuk menelusur file berdasarkan kriteria properti tertentu.


Gambar 1. Properti file dalam sebuah Windows Explorer

Untuk menampilkan properti sebuah file, kita bisa menggunakan FileSystemObject. Dengan menggunakan FileSystemObject di Access, kita bisa menampilkan file sesuai dengan kriteria yang ditetapkan melalui berbagai macam properti file. Dibandingkan dengan Windows Explorer, menampilkan properti file melalui FileSystemObject lebih variatif karena diprogram sesuai dengan keinginan. Namun demikian, FileSystemObject hanya memuat properti file standar yang dibutuhkan dalam sebuah file. Adapun properti file yang dapat ditampilkan melalui FileSystemObject adalah sebagai berikut:
Properti Keterangan
Attributes Atribut pada sebuah file, bisa berupa Hidden, Read only, System, dan Archive. VBA menampilkan atribut dalam bentuk Bitmap, yaitu berupa angka yang merupakan penjumlahan dari masing-masing atribut.
DateCreated Tanggal saat file dibuat.
DateLastAccessed Tanggal saat file terakhir kali diakses.
DateLastModified Tanggal saat terakhir kali seorang pengguna memodifikasi file.
Drive Huruf drive beserta tanda titik dua (Contoh: C:), mewakili drive tempat menyimpan file.
Name Nama file, tidak termasuk nama path. Contoh: nama file dari C:\Windows\System32\Scrrun.dll adalah Scrrun.dll.
ParentFolder Nama parent folder dari file yang disimpan. Contohnya, parent folder dari C:\Windows\System32\Scrrun.dll adalah Windows.
Path Nama path lengkap dari file (contohnya, C:\Windows\System32\Scrrun.dll).
ShortName Nama konvensioanl sebuah file dengan menggunakan format lama sistem operasi MS-DOS, terdiri dari 8 karakter untuk nama file dan 3 karakter untuk ekstensi file. Contohnya, file C:\MySpreadsheet.xls mempunyai ShortName MySpre~1.xls.
ShortPath Nama konvensioanl sebuah path file dengan menggunakan format lama sistem operasi MS-DOS, terdiri dari 8 karakter untuk nama file dan 3 karakter untuk ekstensi file. Contohnya, path C:\Program Files\Internet Explorer\ie.exe mempunyai nama konvesional C:\PROGRA~1\INTERN~1\ie.exe.
Size Ukuran file total, dinyatakan dalam byte.
Type Menjelaskan tipe file berdasarkan ekstensi yang ada, sebagai misal: "Microsoft Word Document" untuk file dengan ekstensi doc dan docx.
Langkah-langkah untuk menampilkan properti file:
  1. Membuat object dengan FileSystemObject.
  2. Menggunakan metode GetFile untuk mengakses sebuah file.
  3. Menampilkan properti file.
Berikut ini adalah contoh kode untuk menampilkan properti file.
Function propertiFile()
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile("C:\Documents and Settings\User\My Documents\My Music\Spice Girl - Spice Up Your Life.mp3")
  Debug.Print "Date created: " & objFile.DateCreated
  Debug.Print "Date last accessed: " & objFile.DateLastAccessed
  Debug.Print "Date last modified: " & objFile.DateLastModified
  Debug.Print "Drive: " & objFile.Drive
  Debug.Print "Name: " & objFile.Name
  Debug.Print "Parent folder: " & objFile.ParentFolder
  Debug.Print "Path: " & objFile.Path & vbNewLine
  Debug.Print "Short name: " & objFile.ShortName
  Debug.Print "Short path: " & objFile.ShortPath
  Debug.Print "Size: " & objFile.Size
  Debug.Print "Type: " & objFile.Type
  Debug.Print "Atribut: " & objFile.Attributes
End Function
Bila dijalankan melalui Immediate Window, maka hasilnya adalah sebagai berikut:
?propertiFile
Date created: 2/26/2016 1:05:51 AM
Date last accessed: 2/29/2016
Date last modified: 2/26/2016 1:07:56 AM
Drive: C:
Name: Spice Girl - Spice Up Your Life.mp3
Parent folder: C:\Documents and Settings\User\My Documents\My Music
Path: C:\Documents and Settings\User\My Documents\My Music\Spice Girl - Spice Up Your Life.mp3

Short name: SPICEG~2.MP3
Short path: C:\DOCUME~1\User\MYDOCU~1\MYMUSI~1\SPICEG~2.MP3
Size: 2799633
Type: NeroMediaPlayer media files
Atribut: 32

Menampilkan Properti File dengan Lebih Lengkap (Extended File Properties)

Bila mengeklik mouse kanan (mengaktifkan shortcut menu) sebuah file di Windows Explorer dan memilih Properties, kita akan melihat sebuah kotak yang berisi properti dari file yang kita pilih. Properti file dalam kotak itu ada bermacam-macam seperti nama file, lokasi file, ukuran, tanggal dibuat, tanggal diakses, atribut file, dan sebagainya. Selain properti standar yang bisa ditampilkan dengan menggunakan FileSystemObject, ada juga properti lainnya yang disebut Extended File Properties. Extended File Properties ini berisi properti file yang jauh lebih lengkap daripada properti standar yang dihasilkan melalui FileSystemObject. Sebagai contoh, file dengan format lagu/ekstensi mp3 akan berisi properti nama artist, durasi lagu, album, judul, dan sebagainya, seperti Gambar 2 di bawah. Dengan menampilkan properti semacam ini, kita akan lebih mudah untuk mengelola file lagu, entah itu berdasarkan album, artist, genre, dan sebagainya.

Untuk menampilkan properti seperti ini kita harus menggunakan Shell Application, cara lain dalam mengelola sistem file di Windows melalui Access VBA. Metode yang digunakan adalah GetDetailsOf. Syntax penulisannya adalah sebagai berikut:
objFolder.GetDetailsOf(strNamaFile, intNomorIndeks)
strNamaFile adalah nama file yang ada dalam sebuah objek folder objFolder dan intNomorIndeks adalah nomor indeks properti yang disediakan oleh Windows.

Adapun nomor indeks dan properti yang bisa ditampilkan dengan metode GetDetailsOf adalah sebagai berikut:
Indeks Properti Indeks Properti
0 Name 18 Year
1 Size 19 Track Number
2 Type 20 Genre
3 Date Modified 21 Duration
4 Date Created 22 Bit Rate
5 Date Accessed 23 Protected
6 Attributes 24 Camera Model
7 Status 25 Date Picture Taken
8 Owner 26 Dimensions
9 Author 27 Not used
10 Title 28 Not used
11 Subject 29 Not used
12 Category 30 Company
13 Pages 31 Description
14 Comments 32 File Version
15 Copyright 33 Product Name
16 Artist 34 Product Version
17 Album Title
Untuk menampilkan properti di atas, metode GetDetailsOf menggunakan dua parameter yaitu nama file dan nomor indeks dari properti. Sebagai contoh, indeks untuk Album Title mempunyai nomor 17, indeks untuk Author mempunyai nomor 9, dan seterusnya.

Gambar 2. Properti file dalam sebuah file lagu berformat MP3


Berikut ini adalah contoh metode GetDetailsOf:
Debug.Print objFolder.GetDetailsOf(strNamaFile, 17)  'Untuk nama file:strNamaFile dan nomor indeks:17 (Album Title)
Debug.Print objFolder.GetDetailsOf(strNamaFile, 3) 'Untuk nama file:strNamaFile dan nomor indeks:3 (Date Modified)
Berikut ini adalah kode VBA di Access yang digunakan untuk menampilkan Extended File Properties dengan metode GetDetailsOf:
Function tampilkanExtendedFileProperties()
  Dim objShell, objFolder, objFolderItem As Object
  Dim i As Integer
  Dim arrHeaders(35)
  Set objShell = CreateObject("Shell.Application")
  Set objFolder = objShell.NameSpace("C:\Documents and Settings\Namauser\My Documents\My Music\Sarah Brightman Phantom of the Opera")
  Set objFolderItem = objFolder.ParseName("01 - Prologue.mp3")
  For i = 0 To 34
   arrHeaders(i) = objFolder.GetDetailsOf(objFolder.Items, i)
   If arrHeaders(i) <> vbNullString Then Debug.Print "Index# " & i & ", " & arrHeaders(i) & ": " & objFolder.GetDetailsOf(objFolderItem, i)
  Next
End Function
Bila dieksekusi di Immediate Wondows, hasilnya adalah sebagai berikut:
?tampilkanExtendedFileProperties
Index# 0, Name: 01 - Prologue.mp3
Index# 1, Size: 2,438 KB
Index# 2, Type: NeroMediaPlayer media files
Index# 3, Date Modified: 11/27/2008 10:44 AM
Index# 4, Date Created: 4/15/2014 1:20 PM
Index# 5, Date Accessed: 2/29/2016 12:00 AM
Index# 6, Attributes: A
Index# 7, Status: Online
Index# 8, Owner: Everyone
Index# 9, Author: Sarah Brightman
Index# 10, Title: Prolouge
Index# 11, Subject: 
Index# 12, Category: Film Score - Opera
Index# 13, Pages: 
Index# 14, Comments: 
Index# 15, Copyright: 
Index# 16, Artist: Sarah Brightman
Index# 17, Album Title: The Phantom of the Opera
Index# 18, Year: 
Index# 19, Track Number: 1
Index# 20, Genre: Film Score - Opera
Index# 21, Duration: 0:01:53
Index# 22, Bit Rate: 224kbps
Index# 23, Protected: No
Index# 24, Camera Model: 
Index# 25, Date Picture Taken: 
Index# 26, Dimensions: 
Index# 29, Episode Name: 
Index# 30, Program Description: 
Index# 32, Audio sample size: 0 bit
Index# 33, Audio sample rate: 44 kHz
Index# 34, Channels: 2 (stereo)

Pada fungsi tampilkanExtendedFileProperties di atas, kita menampilkan properti file sebuah lagu berformat MP3. Nama filenya adalah "01 - Prologue.mp3" (pada baris kode ke 7) dan terletak di folder "C:\Documents and Settings\Namauser\My Documents\My Music\Sarah Brightman Phantom of the Opera" (pada baris kode ke 6). Silakan mencoba sendiri dengan menggunakan fungsi di atas. Kita hanya perlu mengisikan baris ke 6 dan 7 dari kode di fungsi itu.

Comments

Posting Terpopuler

Normalisasi, Denormalisasi, dan Anomali Database

Membuat Relasi Database

Menampilkan Data MySQL dalam Form di Access