public void TestFilterEvaluationFailure()
        {
            FilterCondition parentDirectoryCondition = new FilterCondition(FileMetaAttributesStringConstants.FileMetaAttributeParentDirectory, FileFilterOperator.Equals,
                                                                   @"C:\Projects\Classifier\findfilesutil\Trunk\src\KMPAlgorithmTestRunner\KMPAlgorithmTestRunner\TestData", FilterAttributeDataType.String);
            FilterCondition fileExtensionFilterCondition = new FilterCondition(FileMetaAttributesStringConstants.FileMetaAttributeFileExtension, FileFilterOperator.Equals, "xls", FilterAttributeDataType.String);

            List<FilterCondition> filterConditions = new List<FilterCondition>();
            filterConditions.Add(parentDirectoryCondition);
            filterConditions.Add(fileExtensionFilterCondition);

            //Get information about a test file and then create a dummy filter condition based on the
            //file attribites of the test file

            FileInfo fileInfo = new FileInfo(@"C:\Projects\Classifier\findfilesutil\Trunk\src\KMPAlgorithmTestRunner\KMPAlgorithmTestRunner\TestData\Microsoft.txt");

            FilterCondition fileCreateCondition = new FilterCondition(FileMetaAttributesStringConstants.FileMetaAttributeCreationTime, FileFilterOperator.Equals, fileInfo.CreationTime.Ticks.ToString(), FilterAttributeDataType.Long);
            FileMetaAttributes fileAttributes = new FileMetaAttributes(fileInfo.DirectoryName, fileInfo.CreationTime.Ticks, fileInfo.LastWriteTime.Ticks, fileInfo.Length, fileInfo.Extension, @"HORNET\\prahaladd");

            filterConditions.Add(fileCreateCondition);

            FileMetaAttributeFilter fileFilter = new FileMetaAttributeFilter(filterConditions);

            FileFilterEvaluator filterEvaluator = new FileFilterEvaluator(fileFilter, fileAttributes);

            bool result = filterEvaluator.EvaluateFilter();

            Assert.IsFalse(result);
        }
예제 #2
0
        public static FileMetaAttributes GetFileMetaAttributes(string fileName)
        {
            long fileCreationDate = File.GetCreationTime(fileName).Ticks;
            long fileModificationDate = File.GetLastAccessTime(fileName).Ticks;

            FileInfo fileInfo = new FileInfo(fileName);

            long fileSize = fileInfo.Length;

            string fileExtension = fileInfo.Extension;

            //obtain the owner of the file.
            FileSecurity fileSecurity = File.GetAccessControl(fileName);
            Type securityPrincipalType = Type.GetType("System.Security.Principal.SecurityIdentifier");

            string fileOwner = fileSecurity.GetOwner(securityPrincipalType).Value;

            //create the file meta attributes
            FileMetaAttributes metaAttributes = new FileMetaAttributes(GetParentDirectoryForFile(fileName),
                                                                            fileCreationDate, fileModificationDate,fileSize,fileExtension,
                                                                            fileOwner);

            return metaAttributes;
        }
예제 #3
0
 public static bool EvaluateMetaAttributeFilters(FileMetaAttributes fileAttributes, FileMetaAttributeFilter filter)
 {
     FileFilterEvaluator filterEvaluator = new FileFilterEvaluator(filter,fileAttributes);
     return filterEvaluator.EvaluateFilter();
 }
예제 #4
0
 public IndexRecord(string fileName, List<Int32> occurencePositions, FileMetaAttributes fileMetaAttributes)
 {
     _fileName = fileName;
     _occurencePositions = occurencePositions;
     _fileMetaAttributes = fileMetaAttributes;
 }
 /// <summary>
 /// Creates an instance of a file filter evaluator
 /// </summary>
 /// <param name="fileFilter">The file filter to be evaluated</param>
 /// <param name="fileAttributes">The attributes of the file against which the filter will be evaluated</param>
 public FileFilterEvaluator(FileMetaAttributeFilter fileFilter, FileMetaAttributes fileAttributes)
 {
     _fileFilter = fileFilter;
     _fileAttributes = fileAttributes;
 }