public Writer(String path, bool append) { mPath = path; if (!File.Exists(path) && !File.Exists(QAIF.GetDataFilename(path))) { append = false; } if (!append) { if (File.Exists(path) && File.Exists(QAIF.GetDataFilename(path))) { File.Delete(path); File.Delete(QAIF.GetDataFilename(path)); } mFSi = new FileStream(path, FileMode.CreateNew, FileAccess.ReadWrite); mFSd = new FileStream( QAIF.GetDataFilename(path), FileMode.CreateNew, FileAccess.Write); mIndexBeg = 0; mDataTill = 0; mItemCount = 0; } else//append { QAIFDataSpanInfo infoIdx = QAIF.GetFileSpanInfo(path); mIndexBeg = infoIdx.Begin; mItemCount = infoIdx.Length; mFSi = new FileStream(path, FileMode.Append, FileAccess.ReadWrite); mFSd = new FileStream( QAIF.GetDataFilename(path), FileMode.Append, FileAccess.Write); FileInfo info = new FileInfo(QAIF.GetDataFilename(path)); mDataTill = info.Length; } mBWi = new BinaryWriter(mFSi); mBWd = new BinaryWriter(mFSd); if (!append) { mFSi.Position = 0; mBWi.Write(INDEX_BEG); mIndexBeg = INDEX_BEG;// mBWi.Write(mItemCount); } }
public Reader(String IndexFilepath) { mPath = IndexFilepath; QAIFDataSpanInfo info = QAIF.GetFileSpanInfo(IndexFilepath); mIndexBeg = info.Begin; mItemCount = info.Length; //index mFSi = new FileStream( IndexFilepath, FileMode.Open, FileAccess.Read); mBRi = new BinaryReader(mFSi); //data mFSd = new FileStream( QAIF.GetDataFilename(IndexFilepath), FileMode.Open, FileAccess.Read); mBRd = new BinaryReader(mFSd); }