Example #1
0
		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);
			}
		}