-->

Lock and Unlock Folder dengan Menggunakan VB.Net

selamat pagi sobat blogger semuanya, jumpa lagi dengan saya di blog yang sederhana ini. Mudah-mudahan blog saya ini memberikan jawaban bagi agan semuanya, hehe...
kali ini saya akan memberikan tutorial seperti judul diatas yaitu untuk membuat sebuah aplikasi mungil yang berfungsi untuk Lock/Mengunci dan Unlock/membuka kunci folder. Barangkali agan-agan punya folder yang bersifat sangat rahasia jadi kalau pake aplikasi ini sangat cocok dech....
sekilas penampakan aplikasinya gan :

oke gan, langsung saja kita buat aplikasinya..:

pertama agan buka dulu visual studionya agan dan buat sebuah project baru, serta design project agan seperti gambar dibawah ini gan :

pada design tersebut saya menggunakan komponen :
* 1 toolstrip
* 1 Folder Browser Dialog
* 1 Listview
* 3 Button
* 4 Textbox

oya gan, hampir lupa saya. Pada aplikasi ini saya juga menggunakan sebuah simple database dengan menggunakan ms access. Jadi gunanya nanti database ini adalah menyimpan semua aksi baik itu lock maupun aksi untuk locknya..., hehe... sebenarnya databasenya ini gak terlalu penting sih, cuma gpp ya gan ane isiin database...?wkwkwkw..
desain databasenya seperti ini gan :


oke gimana gan ? sudah selesai membuat design nya ??? jika sudah sekarang kita lanjut ke bagian codingnya. Silahkan agan pindah ke bagian coding dan import reference berikut :

Imports System.Security.AccessControl
Imports System.IO
Imports System.Data
Imports System.Data.OleDb


kemudian agan buat deklarasi variable sebagai koneksi databasenya seperti ini gan :

Dim cnnOLEDB As New OleDbConnection
    Dim cmdOLEDB As New OleDbCommand
    Dim cmdInsert As New OleDbCommand
    Dim strConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & System.Environment.CurrentDirectory & "\dbHistory.mdb"


jika sudah, sekarang kita akan buat sebuah sub yang berguna untuk mendapatkan ukuran/size dari folder yang kita browse. codenya seperti ini gan :

Function GetFolderSize(ByVal DirPath As String, Optional ByVal IncludeSubFolders As Boolean = True) As Long
        Dim lngDirSize As Long
        Dim objFileInfo As FileInfo
        Dim objDir As DirectoryInfo = New DirectoryInfo(DirPath)
        Dim objSubFolder As DirectoryInfo
        Try
            For Each objFileInfo In objDir.GetFiles()
                lngDirSize += objFileInfo.Length
            Next
            If IncludeSubFolders Then
                For Each objSubFolder In objDir.GetDirectories()
                    lngDirSize += GetFolderSize(objSubFolder.FullName)
                Next
            End If
        Catch ex As Exception

        End Try
        Return lngDirSize
    End Function


setelah membuat function untuk mendapatkan size/ukuran dari folder, sekarang kita juga buat sebuah fungsi untuk mendapatkan nilai/mengkonversi nilai dari size folder diatas kedalam KB, MB, GB atau TB. codenya seperti ini gan :

Private Function awalan(ByVal size As Long) As String
        Dim totalString As String = ""
        For prefix As Integer = 0 To 4
            If size < 1024 Or prefix = 4 Then
                totalString = size
                Select Case prefix
                    Case 0
                        totalString &= " B"
                    Case 1
                        totalString &= " KB"
                    Case 2
                        totalString &= " MB"
                    Case 3
                        totalString &= " GB"
                    Case 4
                        totalString &= " TB"
                End Select
                Exit For
            Else
                size /= 1024
            End If
        Next
        Return totalString
    End Function

setelah selesai membuat 2 function tadi, sekarang kita berlanjut ke bagian form_load dan tambahkan kode berikut :
cnnOLEDB.ConnectionString = strConnectionString
        cnnOLEDB.Open()
        Label5.Text = DateTime.Now.ToString("dd-MM-yyyy")
        TampilData()

tampil data diatas fungsinya adalah untuk menampilkan data dari database ke listview. kode untuk tampil datanya seperti ini gan :
Sub TampilData()
        With ListView1
            .FullRowSelect = True
            .MultiSelect = False
            .View = View.Details
            .Columns.Clear()
            .Items.Clear()
            .Columns.Add("Nama Folder", 100, HorizontalAlignment.Left)
            .Columns.Add("Lokasi Folder", 165, HorizontalAlignment.Left)
            .Columns.Add("Aksi", 60, HorizontalAlignment.Left)
        End With
        Dim sql As String = "SELECT namaFolder,lokasiFolder,aksi FROM tbData WHERE tanggal='" & Label5.Text & "'"
        Dim sqlAdapter As New OleDbDataAdapter
        Dim sqlTabel As New DataTable
        With cmdOLEDB
            .CommandText = sql
            .Connection = cnnOLEDB
        End With
        With sqlAdapter
            .SelectCommand = cmdOLEDB
            .Fill(sqlTabel)
        End With

    End Sub

lanjut ke bagian browse folder, klik 2x pada button browse folder dan inputkan kode berikut :
Private Sub btnBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBrowse.Click
        Dim ukuran As Long
        With fbd
            If .ShowDialog() = DialogResult.OK Then
                txtLokasi.Text = .SelectedPath
            End If
            txtNamaFolder.Text = IO.Path.GetFileName(txtLokasi.Text)
            txtRoot.Text = IO.Path.GetPathRoot(txtLokasi.Text)
            ukuran = GetFolderSize(txtLokasi.Text)
            txtSize.Text = awalan(ukuran)
        End With
    End Sub

pada saat button di browse, maka system akan mencatat data/informasi dari folder yang dibrowse seperti ukuran foldernya,dsb. setelah itu , klik 2x button unlock dan ketikkan kode berikut gan :
Private Sub btnUnlock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUnlock.Click
If txtLokasi.Text = "" Then
MsgBox("Silahkan Pilih Folder Dulu", vbExclamation, "Guzko Blog Tutorial")
Exit Sub
Else
Try
Dim fs As FileSystemSecurity = File.GetAccessControl(txtLokasi.Text)
fs.RemoveAccessRule(New FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny))
File.SetAccessControl(txtLokasi.Text, fs)

Dim tgl As String = DateTime.Now.ToString("dd-MM-yyyy")
cmdInsert.CommandText = "INSERT INTO tbData (namaFolder,lokasiFolder,ukuranFolder,rootFolder,aksi,tanggal) VALUES " & _
"('" & txtNamaFolder.Text & "','" & txtLokasi.Text & "','" & txtSize.Text & "','" & txtRoot.Text & "','Unlock','" & tgl & "')"
cmdInsert.CommandType = CommandType.Text
cmdInsert.Connection = cnnOLEDB
cmdInsert.ExecuteNonQuery()
MsgBox("Folder Berhasil di Unlock", vbInformation, "Guzko Blog Tutorial")
cmdInsert.Dispose()
TampilData()
Catch ex As Exception
MsgBox("Unknown Error : " & ex.Message, vbCritical, "Guzko Blog Tutorial")
End Try
End If
End Sub

pada saat button unlock di klik dan sukses maka data akan dikirimkan pula ke database yang telah dibuat. setelah itu lanjut , klik 2x button lock dan ketikkan kode berikut gan :
Private Sub btnLock_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLock.Click
        If txtLokasi.Text = "" Then
            MsgBox("Silahkan Pilih Folder Dulu", vbExclamation, "Guzko Blog Tutorial")
            Exit Sub
        Else
            Try
                Dim fs As FileSystemSecurity = File.GetAccessControl(txtLokasi.Text)
                fs.AddAccessRule(New FileSystemAccessRule(Environment.UserName, FileSystemRights.FullControl, AccessControlType.Deny))
                File.SetAccessControl(txtLokasi.Text, fs)

                Dim tgl As String = DateTime.Now.ToString("dd-MM-yyyy")
                cmdInsert.CommandText = "INSERT INTO tbData (namaFolder,lokasiFolder,ukuranFolder,rootFolder,aksi,tanggal) VALUES " & _
                    "('" & txtNamaFolder.Text & "','" & txtLokasi.Text & "','" & txtSize.Text & "','" & txtRoot.Text & "','Lock','" & tgl & "')"
                cmdInsert.CommandType = CommandType.Text
                cmdInsert.Connection = cnnOLEDB
                cmdInsert.ExecuteNonQuery()
                MsgBox("Folder Berhasil di Lock", vbInformation, "Guzko Blog Tutorial")
                cmdInsert.Dispose()
                TampilData()
            Catch ex As Exception
                MsgBox("Unknown Error : " & ex.Message, vbCritical, "Guzko Blog Tutorial")
            End Try

        End If
    End Sub

terakhir, kita tambahkan kode pada button historynya, fungsi dari button history ini adalah untuk mengexport data didatabase ke dalam bentuk XML, kodenya seperti ini :
Private Sub cmdHistory_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdHistory.Click
        Dim tanya As Integer
        tanya = MsgBox("Database akan di-export ke XML pada direktori aplikasi ini. Apakah yakin ingin export ?", vbQuestion + vbYesNo, "Guzko Tutorial")
        If tanya = vbYes Then
            Try
                Dim ds As New Data.DataSet()
                Dim da As New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM tbData", cnnOLEDB)
                da.Fill(ds)
                ds.WriteXml(System.Environment.CurrentDirectory & "\history.xml", Data.XmlWriteMode.WriteSchema)
                MsgBox("Database berhasil di-export. History.xml berhasil dibuat", vbInformation, "Guzko Tutorial")
            Catch ex As Exception
                MsgBox("Unknown Error : " & ex.Message, vbCritical, "Guzko Tutorial")
            End Try
        End If
    End Sub
oke gan, sekarang waktunya testing gan... silahkan jalankan aplikasinya dan jika agan mengikuti perintah dari awal maka 90% aplikasi ini pasti jalan, hehe.... tampilannya seperti ini gan (sebagai contoh saya akan kunci folder di drive saya dengan nama folder "Bahan Skripsi") :
setelah terdapat pesan sukses bahwa folder telah di lock, sekarang coba agan tes folder yang di lock tadi, hasilnya akan seperti ini :
oke gan sekian dulu tutorial dari saya, semoga ini bisa membantu agan agan semuanya, jika ada yang belum jelas dan kurang dimengerti silahkan komen gan... yang mau download langsung source codenya bisa link dibawah ini :

kita ketemu lagi di tutorial berikutnya gan,,,
seeee...uuuuu

2 komentar

avatar

ijin pakai buat tutorial , komandan !

avatar

link download nya mati...

Click to comment