Minggu, 01 Mei 2011

10

[VB.NET] Belajar Membuat Program File Scanner

  • Minggu, 01 Mei 2011
  • Nurkholish Ardi Firdaus
  • Share
  • Alhamdulillah, ini adalah postingan pertama saya setelah 1 minggu vakum setelah UN. Sebenarnya UN nya sudah selesai 1 minggu yang lalu, tetapi saya baru menyempatkan posting sekarang. Oke daripada kebanyakan omong, kita mulai saja rapat kali ini ^_^. Sebelumnya saya pernah mempostingkan bagaimana cara membuat Program Virus Scanner Sederhana, tetapi ternyata metode scan nya sangatlah lambat dan merepotkan. Nah kali ini saya akan membuat Program File Scanner yang mana metodenya lumanyan lebih cepat dan tidak memberatkan RAM. Mari kita lihat bagaimana?.



    Buatlah proyek baru dengan 1 Form

    Deklarasi:
    1 Form
    2 Button
    2 TextBox
    1 ComboBox
    5 Label
    1 Timer
    

    Buatlah sedemikian rupa seperti ini sesuai keterangan dibawahnya:



    Keterangan
    1: ComboBox
     Name: cboDir
     DropDownStyle: DropDownList
    2: Button
     Name: cmdBrowse
     Text: "Browse"
    3: Button
     Name: cmdScan
     Text: "Scan"
    4: TextBox
     Name: txtCurrDir
     MultiLine: True
     ScrollBars: Vertical
    5: Label
     Name: lblSpeed
     Text: "Speed:"
    6: TextBox
     Name: txtCurrFile
    7: Label
     Name: lblScanned
     Text: "Scanned:"
    8: Label
     Name: lblUnscanned
     Text: "Unscanned:"
    9: Label
     Name: Label1
     Text: "Current Folder"
    10: Label
     Name: Label2
     Text: "Current File"
    11: Timer
     Name: tmrSpeedo
     Enabled: False
     Interval: 1000

    Terakhir masukkan source codenya:

    Source Code Form1

    ' Program file scanner sederhana
    ' coded by nurkholish ardi f
    ' www.cr0wja.co.cc
    Imports Microsoft.VisualBasic.FileSystem
    Imports Microsoft.VisualBasic.Strings
    Public Class Form1
    
        Dim Scanned As UInt64
        Dim Unscanned As UInt64
        Dim ScannedBefore As UInt64
        Dim RunScan As Boolean
    
        Private Sub cmdScan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdScan.Click
            If cboDir.Text = "" Then Exit Sub
            If cmdScan.Text = "Scan" Then
                Turn(True)
                ScanDir(cboDir.Text, True)
                If cmdScan.Text = "Stop" Then ShowRes()
            Else
                ShowRes()
            End If
            Turn(False)
        End Sub
    
        Private Sub Turn(ByVal switch As Boolean)
            Scanned = 0
            Unscanned = 0
            ScannedBefore = 0
            tmrSpeedo.Enabled = switch
            RunScan = switch
            txtCurrDir.Text = ""
            txtCurrFile.Text = ""
            lblScanned.Text = "Scanned: "
            lblSpeed.Text = "Speed: "
            cmdBrowse.Enabled = Not switch
            cboDir.Enabled = Not switch
            If switch Then
                cmdScan.Text = "Stop"
            Else
                cmdScan.Text = "Scan"
            End If
        End Sub
    
        Private Sub ShowRes()
            MsgBox("Done, " & Scanned & " file(s) scanned, " & Unscanned & " file(s) unscanned", MsgBoxStyle.Information, "Done")
        End Sub
    
        Private Sub cmdBrowse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBrowse.Click
            Dim OpenDirDlg As New FolderBrowserDialog
            With OpenDirDlg
                .ShowDialog()
                If .SelectedPath <> Nothing Then
                    cboDir.Items.Add(.SelectedPath)
                    cboDir.Text = .SelectedPath
                End If
            End With
            OpenDirDlg = Nothing
        End Sub
    
        Private Sub ScanDir(ByVal dirpath As String, ByVal subdirs As Boolean)
            If Not RunScan Then Exit Sub
            Application.DoEvents()
            If Strings.Right(dirpath, 1) <> "\" Then dirpath &= "\"
            Dim CurrFile As String
            Dim value As Int32
            CurrFile = Microsoft.VisualBasic.Dir(dirpath)
            Do While CurrFile <> ""
                value = ScanFile(dirpath & CurrFile)
                Scanned += value
                Unscanned += IIf(value = 1, 0, 1)
                txtCurrFile.Text = CurrFile
                txtCurrDir.Text = dirpath
                lblScanned.Text = "Scanned: " & Scanned & " file(s)"
                lblUnscanned.Text = "Unscanned: " & Unscanned & " file(s)"
                CurrFile = Microsoft.VisualBasic.Dir
            Loop
    
            If subdirs Then
                For Each SubDir As String In FileIO.FileSystem.GetDirectories(dirpath, FileIO.SearchOption.SearchTopLevelOnly)
                    Try
                        ScanDir(SubDir, True)
                    Catch ex As Exception
    
                    End Try
                Next
            End If
        End Sub
    
        Private Function ScanFile(ByVal filepath As String) As Int32
            If Not RunScan Then Exit Function
            Application.DoEvents()
            Try
                Dim OpenFile As New IO.StreamReader(filepath)
                '==========================================
                ' Disini agan bisa menambahkan code yang selanjutnya, setelah akses stream file reader terbuka
                ' bisa berupa mencari bit pada file, mendapatkan hash md5 nya atau sebagainya
                ' sesuai keinginan agan
                '==========================================
                OpenFile.Close()
                Return 1
            Catch ex As Exception
                ' jika terjadi error
                Return 0
            End Try
        End Function
    
        Private Sub tmrSpeedo_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrSpeedo.Tick
            If ScannedBefore = 0 Then
                ScannedBefore = Scanned
            Else
                lblSpeed.Text = "Speed: " & (Scanned - ScannedBefore) & " file/s"
                ScannedBefore = Scanned
            End If
        End Sub
    
    End Class

    Dan setelah saya coba Run, kecepatan scan nya lumayan nih.


    Tetapi itu belum ada code yang akan dijalankan pada setiap file yang akan di scan, mungkin jika agan menambahkan code seperti mengambil hash MD5 nya mungkin kecepatan akan semakin lambat tergantung banyaknya tugas yang dilaksanakan.

    Nah, sampai sekian dulu. Seperti biasanya jika agan malas membuatnya, agan bisa mendownload source codenya dibawah ini.

    Crowja-Coderz


    Jangan Lupa Komentar Yaa..
    Related Posts Plugin for WordPress, Blogger...

    10 Komentar Untuk “[VB.NET] Belajar Membuat Program File Scanner”

    hana mengatakan...

    Senin, 09 Mei 2011 15.47.00 WIB Reply To This Comment

    hem,ga ngerti dah apa yg kmu tulis ar!!!


    Nurkholish Ardi Firdaus mengatakan...
    Selasa, 10 Mei 2011 07.37.00 WIB Reply To This Comment

    @hana hahay


    Anonim mengatakan...

    Senin, 30 Mei 2011 11.00.00 WIB Reply To This Comment

    source code utk membuat matriks dengan VB.net ada gk..?? kalo ada tolong d share.. makasi :)


    Nurkholish Ardi Firdaus mengatakan...
    Selasa, 31 Mei 2011 12.40.00 WIB Reply To This Comment

    @Anonim seeepp,, insyaallah bakal ane buatin bsok2..... ^_-


    Admin mengatakan...
    Senin, 06 Juni 2011 14.45.00 WIB Reply To This Comment

    ni Pake VB Versi Apa ???


    Nurkholish Ardi Firdaus mengatakan...
    Selasa, 07 Juni 2011 09.23.00 WIB Reply To This Comment

    @Admin klo ane pke vb.net. tepatnya vb 2010 gan


    Anonim mengatakan...

    Senin, 19 Desember 2011 01.31.00 WIB Reply To This Comment

    terimakasih bnget infonya gan... sangat bermanfaat sekali buat saya,,, sukses terus buat agan...


    Anonim mengatakan...

    Senin, 19 Desember 2011 01.36.00 WIB Reply To This Comment

    oiya gan kalo untuk yang di atas itu mesti buat data base virusnya apa tidak...trus cara untuk memperpadukan antara data base virus dengan menyecan file nya bgaimana ya?


    Nurkholish Ardi Firdaus mengatakan...
    Kamis, 29 Desember 2011 02.47.00 WIB Reply To This Comment

    @Anonim ini kan program sederhana yang melakukan scan pada file, jadi jika agan pengin menjadikannya virus scanner agan tinggal menambahkan algoritma seperti pengecekan CRC file nya lalu dsamakan dengan CRC virus yang ada di database... moga membantu ;)


    Anonim mengatakan...

    Senin, 10 September 2012 16.46.00 WIB Reply To This Comment

    Nice Post Gan


    Posting Komentar

    Berikan komentar positif tentang artikel yang sederhana ini niscaya sobat akan mendapatkan balasannya. Hehehe

    Subscribe