public long SkipBytes(long n)
{
if (n <= 0) {
return 0;
}
int adj = 0;
if (isBack) {
isBack = false;
if (n == 1) {
return 1;
}
else {
--n;
adj = 1;
}
}
long pos;
long len;
long newpos;
pos = FilePointer;
len = Length;
newpos = pos + n;
if (newpos > len) {
newpos = len;
}
Seek(newpos);
/* return the actual number of bytes skipped */
return newpos - pos + adj;
}