Beispiel #1
0
 //按内容搜索文件,返回搜索到的文件个数
 public int searchFile(string content, int IsGarbage)
 {
     int fileCount = 0;
     string sDirectory = "";
     string sFileName = "";
     string sPath = "";
     string sDate = "";
     dbMailBox PopMail = new dbMailBox("Pop");
     dbMailBox SmtpMail = new dbMailBox("Smtp");
     dbMailSite GetMail = new dbMailSite("Get");
     dbMailSite SendMail = new dbMailSite("Send");
     if (content.Length > 0)
     {
         using (Connection)
         {
             Connection.Open();
             using (OleDbCommand cmd = Connection.CreateCommand())
             {
                 cmd.CommandText = string.Format(@"select Filename,Directory,Path
                     from Scope() where CONTAINS (Contents,'{0}')
                     AND MATCHES(ShortFileName, '*.|(HTM|,EML|)')", content);
                 using (OleDbDataAdapter da = new OleDbDataAdapter(cmd))
                 {
                     using (DataTable dt = new DataTable())
                     {
                         da.Fill(dt);
                         fileCount = dt.Rows.Count;
                         if (IsGarbage == 0)//对敏感信息关键字处理
                         {
                             for (int i = 0; i < fileCount; i++)
                             {
                                 sDirectory = dt.Rows[i]["Directory"].ToString();
                                 sFileName = dt.Rows[i]["FileName"].ToString();
                                 sDate = sDirectory.Substring(sDirectory.Length - 10, 8);
                                 sPath = sDirectory + "/" + sFileName;
                                 if (sDirectory.Substring(sDirectory.Length - 1) == "0")
                                 {
                                     PopMail.dpsRecByFile(sDate, sPath, IsGarbage);
                                     SmtpMail.dpsRecByFile(sDate, sPath, IsGarbage);
                                 }
                                 else
                                 {
                                     GetMail.dpsRecByFile(sDate, sPath, IsGarbage);
                                     SendMail.dpsRecByFile(sDate, sPath, IsGarbage);
                                 }
                             }
                         }
                         if (IsGarbage == 1)//对垃圾邮件关键字处理
                         {
                             for (int i = 0; i < fileCount; i++)
                             {
                                 sPath = dt.Rows[i]["Path"].ToString();
                                 File.Delete(sPath);
                                 if (sDirectory.Substring(sDirectory.Length - 1) == "0")
                                 {
                                     PopMail.dpsRecByFile(sDate, sPath, IsGarbage);
                                     SmtpMail.dpsRecByFile(sDate, sPath, IsGarbage);
                                 }
                                 else
                                 {
                                     GetMail.dpsRecByFile(sDate, sPath, IsGarbage);
                                     SendMail.dpsRecByFile(sDate, sPath, IsGarbage);
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return fileCount;
 }