Minggu, 13 September 2009

Memunculkan file atau sub direktori pada direktori yang ditentukan

Mungkin di antara Anda punya masalah khusus untuk manajemen file dan folder. Terutama bagi kalangan pengusaha rental komputer, dimana tidak luput dengan banyaknya file pengguna yang membanjiri isi hardisk komputer rental Anda. Cara lama yang sering dilakukan adalah dengan memanfaatkan fitur Windows "File Search" untuk mencari dan menemukan file-file pengguna yang tidak digunakan lagi untuk di hapus.

Tapi tahukah Anda, dengan pemrograman seperti Visual Basic, Anda dapat membuatnya menjadi otomatis dan lebih cepat bila Anda mau mengembangkannya. Untuk itu, saya akan memberikan satu contoh code untuk menampilkan isi direktori/drive sederhana.

Code::

'Judul      : Memunculkan file atau sub direktori pada direktori yang ditentukan
'Coder      : Tongam Tampubolon (Tomero)
'Penjelasan : Buat 1 Listbox, 1 CommandButton, Masukkan kode tsb dalam Form1
 
Private Sub Command1_Click()
    Call ProsesLokasi(List1, "E:\", "mp3", True)
    MsgBox "Selesai"
End Sub
 
'Prosedur memunculkan lokasi file/folder pada kontrol listbox
'ListTampil => Kontrol ListBox Target
'Lokasi => Alamat Drive/Direktori awal permulaan pencarian
'SaringExtension => Penentuan file yg ditmunculkan dalam ListBox
'Rekursif => Penentuan pemrosesan subdirektori
Private Sub ProsesLokasi(ListTampil As ListBox, Lokasi As String, _
SaringExtension As String, Rekursif As Boolean)
    Dim NamaFile As String
    Dim IndexFolder As Long
    Dim TotalFolder As Long
    Dim Folder() As String
    
    'Karena dipastikan sebuah drive atau directory
    'maka ditambahkan slash "\" dibelakang
    Lokasi = TambahSlash(Lokasi)
 
    'Ambil Nama File Pertama
    NamaFile = Dir$(Lokasi & "*.*", vbNormal + vbHidden + vbDirectory + _
vbSystem + vbReadOnly + vbArchive + vbSystem)
    
    'Ulangi Sampai Tidak Ditemui File/Folder
    While NamaFile   ""
        'Periksa Apakah Objek yg didapat berupa folder atau file
        If NamaFile   "." And NamaFile   ".." Then
            If JenisFolder(Lokasi & NamaFile) = False Then 'File
                'Seleksi Berdasarkan extensi file yg ingin di proses
                If SaringExtension   "" Then
                    If Right(LCase(NamaFile), Len(SaringExtension) + 1) = "." & _
LCase(SaringExtension) Then
                        ListTampil.AddItem Lokasi & NamaFile
                    End If
                End If
            Else 'Folder
                ReDim Preserve Folder(IndexFolder)
                Folder(IndexFolder) = Lokasi & TambahSlash(NamaFile)
                ListTampil.AddItem Lokasi & TambahSlash(NamaFile)
                IndexFolder = IndexFolder + 1
            End If
        End If
        DoEvents
        'Ambil Nama File/Folder Berikutnya
        NamaFile = Dir$()
    Wend
    
    'Jika rekursif, ambil isi sub direktori
    If Rekursif = True And IndexFolder > 0 Then
        TotalFolder = IndexFolder - 1
        For IndexFolder = 0 To TotalFolder
            Call ProsesLokasi(ListTampil, Folder(IndexFolder), _
SaringExtension, Rekursif)
        Next
    End If
End Sub
 
'Fungsi untuk menentukan jenis suatu objek
Private Function JenisFolder(Lokasi As String) As Boolean
    Dim CC As Long
    'On Error GoTo NA:
    CC = FileLen(Lokasi)
    If CC > 0 Then
        JenisFolder = False
    Else
        JenisFolder = True
    End If
    Exit Function
NA:
    JenisFolder = True
End Function
 
'Fungsi menambahkan slash "\" pada lokasi direktori
Private Function TambahSlash(Data As String) As String
    TambahSlash = IIf(Right$(Data, 1) = "\", Data, Data & "\")
End Function
 

Tidak ada komentar:

Posting Komentar