/// <summary> /// Reduce disk size re-arranging unused space. Can change password. If a temporary disk was not provided, use MemoryStream temp disk /// </summary> public long Shrink(string password) { // if has connection string, use same path if (_connectionString != null) { // get temp file ("-temp" suffix) var tempFile = FileHelper.GetTempFile(_connectionString.Filename); var reduced = 0L; try { // get temp disk based on temp file var tempDisk = new FileDiskService(tempFile, new FileOptions { Journal = false, FileMode = FileMode.Exclusive }); reduced = _engine.Value.Shrink(password, tempDisk); } finally { // delete temp file File.Delete(tempFile); } return(reduced); } else { return(_engine.Value.Shrink(password)); } }
/// <summary> /// Reduce disk size re-arranging unused spaces. Can change password. If temporary disk was not provided, use MemoryStream temp disk /// </summary> public long Shrink(string password) { // if has connection string, use same path if (_connectionString != null) { // get temp file ("-temp" sufix) var tempFile = Path.Combine(Path.GetDirectoryName(_connectionString.Filename), Path.GetFileNameWithoutExtension(_connectionString.Filename) + "-temp" + Path.GetExtension(_connectionString.Filename)); // if temp file exists, just delete (if is in-use exception will be throwed) if (File.Exists(tempFile)) { File.Delete(tempFile); } // get temp disk based on temp file var tempDisk = new FileDiskService(tempFile, false); var reduced = _engine.Value.Shrink(password); // delete temp file File.Delete(tempFile); return(reduced); } else { return(_engine.Value.Shrink(password)); } }
public DbLite(string model_name, dbMode mode_type) { Model = model_name; string filename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, model_name + ".db"); // Path.Combine(Path.GetTempPath(), "litedb_paging.db"); //File.Delete(filename); switch (mode_type) { case dbMode.OPEN: if (!File.Exists(filename)) { return; } var disk2 = new FileDiskService(filename, new LiteDB.FileOptions { FileMode = LiteDB.FileMode.Exclusive, Journal = false }); //_engine = new LiteEngine(disk, cacheSize: 50000); _engine = new LiteEngine(disk2); Opened = true; break; case dbMode.CREATE_AND_OPEN: var disk = new FileDiskService(filename, new LiteDB.FileOptions { FileMode = LiteDB.FileMode.Exclusive, Journal = false }); //_engine = new LiteEngine(disk, cacheSize: 50000); _engine = new LiteEngine(disk); Opened = true; break; } }
/// <summary> /// Reduce disk size re-arranging unused space. Can change password. If a temporary disk was not provided, use MemoryStream temp disk /// </summary> public long Shrink(string password) { // if has connection string, use same path if (_connectionString != null) { // get temp file ("-temp" suffix) var tempFile = FileHelper.GetTempFile(_connectionString.Filename); // get temp disk based on temp file var tempDisk = new FileDiskService(tempFile, false); var reduced = _engine.Value.Shrink(password); // delete temp file File.Delete(tempFile); return(reduced); } else { return(_engine.Value.Shrink(password)); } }