// Scans a directory and file tree and adds it a given dict private void Insert(string FullPath, FCDictionary dict) { // Add files string[] files = Directory.GetFiles(FullPath); for (int i = 0; i < files.Length; i++) { files[i] = files[i].ToLower(); string file = FCFile.GetFileName(files[i], false); // Dont add files that are already contained if(!dict.Files.ContainsKey(file)) dict.AddFile(files[i]); } // Add dir recursively string[] dirs = Directory.GetDirectories(FullPath); for (int i = 0; i < dirs.Length; i++) { dirs[i] = dirs[i].ToLower(); string dir = FCDictionary.GetLastDirectory(dirs[i]); // Only create new Dir object if it doesnt exists if (!dict.Dirs.ContainsKey(dir)) Insert(dirs[i], dict.AddDirectory(dirs[i])); // Add to new dir else Insert(dirs[i], dict.Dirs[dir]); // Add to old dir } }
public FCDictionary AddDirectory(string FullName) { FCDictionary dir = new FCDictionary(FullName); Dirs.Add(dir.Name, dir); return dir; }
FileCache() { Base = new FCDictionary("Base"); }