Esempio n. 1
0
        internal partial void Init()
        {
            if (_initialized)
            {
                return;
            }
            var dicInfo = new DirectoryInfo(_rootFolder);

            if (!dicInfo.Exists)
            {
                dicInfo.Create();
            }
            var dicList = dicInfo.GetDirectories();

            for (int i = 0; i < dicList.Length; i++)
            {
                var item = new BlockManager(dicList[i]);
                item.LoadOrCreate();
                _allBlocks.Add(item);
            }
            if (_allBlocks.Count == 0)
            {
                CreateBlock();
            }
            _initialized = true;
        }
        /// <summary>
        /// create a block, call this method when block not exists or all block was full
        /// </summary>
        private BlockManager CreateBlock()
        {
            var item = new BlockManager(new DirectoryInfo(_rootFolder).CreateSubdirectory($"{LuanNiao.Core.IDGen.GetInstance().NextId()}"));

            item.LoadOrCreate();
            _allBlocks.Add(item);
            return(item);
        }