Example #1
0
        /// <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));
            }
        }
Example #2
0
        /// <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));
            }
        }
Example #3
0
        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;
            }
        }
Example #4
0
        /// <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));
            }
        }