usmanazizgroupdocs
10/10/2016 - 5:01 PM

DocumentTypeDetector.cs

// For complete examples and data files, please go to https://github.com/groupdocs-metadata/GroupDocs.Metadata-for-.NET
public static class DocumentTypeDetector
{
    /// <summary>
    /// Gets and returns document type of the file
    /// </summary>
    /// <param name="path">File Path</param> 
    /// <returns>Document Type</returns>
    public static DocumentType GetDocumentType(string path)
    {
        using (FileFormatChecker fileFormatChecker = new FileFormatChecker(path))
        {
            return fileFormatChecker.GetDocumentType();
        }
    }

    /// <summary>
    /// Gets and returns files of a specific document type
    /// </summary>
    /// <param name="directory">Directory Path</param>
    /// <param name="documentType">Document Type</param>
    /// <returns>String array containing file paths</returns>
    public static string[] GetFiles(string directory, DocumentType documentType)
    {
        // get all files using Directory.GetFiles approach
        string[] files = Directory.GetFiles(directory, "*.*");

        // return empty array if directory is empty
        if (files.Length == 0)
        {
            return new string[0];
        }

        List<string> result = new List<string>();

        foreach (string path in files)
        {
            using (FileFormatChecker fileFormatChecker = new FileFormatChecker(path))
            {
                if (fileFormatChecker.VerifyFormat(documentType))
                {
                    result.Add(path);
                }
            }
        }

        return result.ToArray();
    }

}