Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }