示例#1
0
        public void WriteFile(string fileName, byte[] raw)
        {
            FileLocation  location = GetLocation(fileName);
            DbFileStorage storage  = GetStorage(location.ConnectionId);
            string        path     = location.Path;
            string        folder   = Path.GetDirectoryName(path);
            string        file     = Path.GetFileName(path);
            long?         folderId = this.GetFolderId(storage.FolderTable, folder);

            storage.FileTable.WriteFile(raw, folderId, file);
        }
示例#2
0
        /// <summary>
        /// Read file from SQLite DB
        /// </summary>
        /// <param name="fileName">File name</param>
        /// <returns></returns>
        public byte[] ReadFile(string fileName)
        {
            FileLocation  location = GetLocation(fileName);
            DbFileStorage storage  = GetStorage(location.ConnectionId);
            string        path     = location.Path;
            string        folder   = Path.GetDirectoryName(path);
            string        file     = Path.GetFileName(path);
            long?         folderId = this.GetFolderId(storage.FolderTable, folder);

            return(storage.FileTable.ReadFile(folderId, file));
        }
示例#3
0
        private DbFileStorage GetStorage(long connectionGroupId)
        {
            DbFileStorage dbFileStorage;

            lock (this._syncLock)
            {
                this._tables.TryGetValue(connectionGroupId, out dbFileStorage);

                if (dbFileStorage == null)
                {
                    dbFileStorage = DbFileStorage.CreateTables(this, connectionGroupId);
                    this._tables.Add(connectionGroupId, dbFileStorage);
                }
            }

            return(dbFileStorage);
        }