public WriteSession(string directory, Compression compression) { var version = LockUtil.GetNextChronologicalFileId(); _version = CreateNewSegmentInfo(version); _version.Compression = compression; Log.InfoFormat("begin writing {0}", _version.Version); var docFileName = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName() + ".dtbl"); var docAddressFn = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName() + ".da"); var docHashesFileName = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName() + ".pk"); _directory = directory; _keyIndexFileName = Path.Combine(Directory.GetCurrentDirectory(), Path.GetRandomFileName() + ".kix"); _addressWriter = new BlockInfoWriter( new FileStream(docAddressFn, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None, 4096, FileOptions.DeleteOnClose)); _docWriter = new DocumentWriter( new FileStream(docFileName, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None, 4096, FileOptions.DeleteOnClose), compression); _docHashesStream = new FileStream( docHashesFileName, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None, 4096, FileOptions.DeleteOnClose); _keyIndex = new Dictionary <string, short>(); _fieldNames = new List <string>(); }