private void UpdateClusterMap() { clusterMap = new Dictionary <uint, List <DatabaseFile> >((int)volume.MaxClusters); for (uint i = 0; i < volume.MaxClusters; i++) { clusterMap[i] = new List <DatabaseFile>(); } foreach (var pair in database.GetFiles()) { var databaseFile = pair.Value; // We handle active cluster chains conventionally if (!databaseFile.IsDeleted) { UpdateClusters(databaseFile); } // Otherwise, we generate an artificial cluster chain else { // TODO: Add a blocklist setting if (databaseFile.FileName.StartsWith("xdk_data") || databaseFile.FileName.StartsWith("xdk_file") || databaseFile.FileName.StartsWith("tempcda")) { // These are usually always large and/or corrupted // TODO: still don't really know what these files are continue; } UpdateClusters(databaseFile); } } }