static void Main(string[] args) { PrintWelcomeMessage(); // get file path Console.WriteLine("1. Enter file path to scan."); var scanPath = GetFilePath(); Console.WriteLine(); // get database path Console.WriteLine("1. Enter database file path."); var databasePath = GetFilePath(); Console.WriteLine(); // check paths if (!File.Exists(scanPath) || !File.Exists(databasePath)) { Console.WriteLine("Scan path or database path is not exist! Exiting..."); PrintExitMessage(); } // do scan try { // initialize libclamav PrintLog("Initializing libclamav..."); ClamMain.Initialize(); PrintLog("libclamav initialized."); // create new engine PrintLog("Creating new engine instance..."); using (var engine = ClamMain.CreateEngine()) { PrintLog("Engine instance is created."); // load database PrintLog("Loading database..."); engine.Load(databasePath); PrintLog("Database loaded."); // compile engine PrintLog("Compiling engine..."); engine.Compile(); PrintLog("Engine compiled."); // scan the file PrintLog("Scanning file..."); var result = engine.ScanFile(scanPath); PrintLog("SCAN FINISHED."); Console.WriteLine("Scanned: " + result.Scanned); Console.WriteLine("IsVirus: " + result.IsVirus); Console.WriteLine("MalwareName: " + result.IsVirus); PrintLog("Releasing engine..."); } PrintLog("Engine released."); } catch (Exception ex) { Console.WriteLine(); CenterText("-----EXCEPTION CAUGHT-----"); Console.WriteLine(ex.ToString()); } // exit Console.WriteLine(); Console.WriteLine(); PrintExitMessage(); }