void DumpNonTagFilesRecursive(TagIndexDumpUtil util, System.IO.DirectoryInfo diri, TagInterface.TagGroupCollection coll) { System.IO.FileInfo[] files = diri.GetFiles(); System.IO.DirectoryInfo[] directories = diri.GetDirectories(); if (files.Length == 0 && directories.Length == 0) { util.NonTagsDirectoryBegin(diri.FullName.Replace(directory, ""), true); util.NonTagsDirectoryEnd(); } else { bool is_first = true; foreach (System.IO.FileInfo fi in files) { string ext; if (fi.Extension != "") ext = fi.Extension.Remove(0, 1).ToLowerInvariant(); // remove the '.' else continue; if (coll.FindGroupIndex(ext) == -1) { if (is_first) { util.NonTagsDirectoryBegin(diri.FullName.Replace(directory, ""), false); is_first = false; } util.NonTagsEntryAdd(fi.FullName.Replace(directory, "")); } } // if we wrote some entries, close the directory dump... if (!is_first) util.NonTagsDirectoryEnd(); foreach (System.IO.DirectoryInfo di in directories) DumpNonTagFilesRecursive(util, di, coll); } }