internal SqlFileStream(string filename, SqlFileStreamMode mode, ManafestEntry entry) : this(filename, mode) { _entry = entry; if (mode == SqlFileStreamMode.Read) { var index = 0; _typeMappings = entry.Schema.ToDictionary(k => index++, v => v.LookupDataType()); _objectBuffer = new object[entry.Schema.Count]; } }
public SqlArchive(string filename, SqlFileStreamMode mode, string tempFolder = null) { _filename = filename; _mode = mode; tempFolder = Path.Combine(tempFolder ?? Path.GetTempPath(), "SqlFileStream"); //create the temp directory if not there var di = new DirectoryInfo(tempFolder); if (!di.Exists) { di.Create(); } _folder = Path.Combine(tempFolder, Guid.NewGuid().ToString()); var di2 = new DirectoryInfo(_folder); if (!di2.Exists) { di2.Create(); } }
// ReSharper disable once MemberCanBePrivate.Global public SqlFileStream(string filename, SqlFileStreamMode mode) { _mode = mode; _jsonSerializer = new JsonSerializer(); switch (mode) { case SqlFileStreamMode.Read: _fileStream = File.Open(filename, FileMode.Open); _compressionStream = new GZipStream(_fileStream, CompressionMode.Decompress); _streamReader = new StreamReader(_compressionStream); _jsonReader = new JsonTextReader(_streamReader); break; case SqlFileStreamMode.Write: _fileStream = File.Open(filename, FileMode.Create); _compressionStream = new GZipStream(_fileStream, CompressionMode.Compress); break; default: throw new ArgumentOutOfRangeException(nameof(mode), mode, null); } IsClosed = false; }