/// <summary>
 /// Get all video files from directory and it's subdirectories.
 /// </summary>
 /// <param name="directory"></param>
 /// <returns></returns>
 public static List<FileInfo> GetVideoFilesRecursive(DirectoryInfo directory)
 {
     List<FileInfo> fileList = directory.GetFilesRecursive();
     List<FileInfo> videoFileList = new List<FileInfo>();
     foreach (FileInfo file in fileList) {
         if (IsVideoFile(file))
             videoFileList.Add(file);
     }
     return videoFileList;
 }
        /// <summary>
        /// This method will dump the complete file/directory structure to the log
        /// </summary>
        /// <param name="path"></param>
        public static void LogDirectoryStructure(string path)
        {
            DirectoryInfo dir = new DirectoryInfo(path);
            List<FileInfo> fileList = dir.GetFilesRecursive();
            StringBuilder structure = new StringBuilder();
            structure.AppendLine("Listing files for: " + path);
            structure.AppendLine(""); // append a blank line
            foreach (FileInfo file in fileList)
                structure.AppendLine(file.FullName); // append full path to file and newline

            // Dump the file structure to the log
            logger.Debug(structure.ToString());
        }