public void Truncate() {
_currentJournaledMemTable.Close();
TableManager.Default.Close(this);
foreach (var pair in _secondaryIndexes) {
pair.Value.Close(FastClose);
}
string basePath = Path.GetFullPath(Manifest.BaseFileName);
foreach (string file in Directory.GetFiles(basePath, "*.*", SearchOption.AllDirectories)) {
Helper.DeleteFile(file, false, (msg) => { Manifest.LogMessage(msg); });
}
foreach (string dir in Directory.GetDirectories(basePath, "*.*", SearchOption.AllDirectories)) {
Helper.DeleteFolder(dir, false, (msg) => { Manifest.LogMessage(msg); });
}
_manifest = new Manifest(basePath);
_currentJournaledMemTable = new JournaledMemTable(_manifest.BaseFileName, _manifest.CurrentVersion(0));
_cache = new RazorCache();
_secondaryIndexes = new Dictionary<string, KeyValueStore>(StringComparer.OrdinalIgnoreCase);
Manifest.LogMessage("Database Truncated.");
}