private void RecordFileInfo(FileActivity activity) { if (activity.IsChanged) { _fConn.ExecuteScalar(string.Format("delete from file where guid='{0}'", activity.HashCode)); } FileInfo fileInfo = new FileInfo(activity.FilePath); //记录文件信息 _fConn.ExecuteNonQuery(string.Format(InsertFileSql, fileInfo.FullName.ToLower(), activity.Md5, fileInfo.LastWriteTime.ToString(DateFormat), DateTime.Now.ToString(DateFormat), activity.HashCode)); }
private void FileEnqueueCallBack(FileActivity activity) { #if DEBUG Console.WriteLine("扫描文件->" + activity.FilePath); if (activity.IsChanged) { Console.WriteLine(string.Format("文件发生变化->{0}", activity.FilePath)); } if (!activity.IsValid) { Console.WriteLine(string.Format("文件无效->{0}", activity.FilePath)); } #endif }
protected override bool VerifyFile(FileActivity activity) { FileInfo fileInfo = new FileInfo(activity.FilePath); if (!fileInfo.Exists) { activity.Message = "文件不存在"; return(false); } if ((fileInfo.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) { activity.Message = "隐藏文件不参与扫描"; return(false); } if (Filter.IndexOf(fileInfo.Extension.ToLower()) < 0) { activity.Message = "不支持此扩展名的文件"; return(false); } if (fileInfo.Length > MaxSize * 1024 * 1024) { activity.Message = string.Format("不支持大于[{0}m]的文件", MaxSize); return(false); } //判断文件是否变化,没有变化不处理 if (!FileChanged(activity)) { activity.Message = "文件内容未发生变化"; return(false); } //检验是否为简历 var result = _service.Predict(activity.FilePath, new ExtractOption[] { ExtractOption.Text }); if (result.Status == OperateStatus.Failure || !result.Data.IsResume) { activity.Message = result.Description; return(false); } return(true); }
/// <summary> /// 校验文件md5变化(data/data.sqllite) /// </summary> private bool FileChanged(FileActivity activity) { activity.Md5 = IOUtility.GetFileMD5(activity.FilePath).ToLower(); var value = _fConn.ExecuteScalar(string.Format("select md5 from file nolock where path='{0}'", activity.FilePath)); if (value == null) { return(true); } var result = value.ToString() != activity.Md5; if (result) { activity.IsChanged = true; } return(result); }
/// <summary> /// 处理事件(核心功能,解析文件存储,监听文件,回调) /// </summary> /// <param name="activity"></param> /// <returns></returns> protected override bool HandleActivity(FileActivity activity) { activity.HashCode = activity.FilePath.MD5(); RecordFileInfo(activity); var result = _service.Parse(activity.FilePath, new ExtractOption[] { ExtractOption.Text }); if (result.Status == OperateStatus.Success) { _storage.Save(activity, result.Data); WatchFile(activity); } _handleCallback(activity, result); return(true); }
private void FileHandleCallBack(FileActivity activity, OperateResult <ResumeResult> result) { #if DEBUG Console.WriteLine("处理文件->" + activity.FilePath); #endif }
protected override void EnqueueActivity(FileActivity activity) { _enqueueCallback(activity); }