123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- using System;
- using System.IO;
- namespace SharpCifs.Util.Sharpen
- {
- public class RandomAccessFile
- {
- private FileStream _stream;
- public RandomAccessFile (FilePath file, string mode) : this(file.GetPath (), mode)
- {
- }
- public RandomAccessFile (string file, string mode)
- {
- if (mode.IndexOf ('w') != -1)
- _stream = new FileStream (file, FileMode.OpenOrCreate, FileAccess.ReadWrite);
- else
- _stream = new FileStream (file, FileMode.Open, FileAccess.Read);
- }
- public void Close ()
- {
- //Stream.`Close` method deleted
- //_stream.Close ();
- _stream.Dispose();
- }
- public long GetFilePointer ()
- {
- return _stream.Position;
- }
- public long Length ()
- {
- return _stream.Length;
- }
- public int Read (byte[] buffer)
- {
- int r = _stream.Read (buffer, 0, buffer.Length);
- return r > 0 ? r : -1;
- }
- public int Read (byte[] buffer, int start, int size)
- {
- return _stream.Read (buffer, start, size);
- }
- public void ReadFully (byte[] buffer, int start, int size)
- {
- while (size > 0) {
- int num = _stream.Read (buffer, start, size);
- if (num == 0) {
- throw new EofException ();
- }
- size -= num;
- start += num;
- }
- }
- public void Seek (long pos)
- {
- _stream.Position = pos;
- }
- public void SetLength (long len)
- {
- _stream.SetLength (len);
- }
- public void Write (int value)
- {
- _stream.Write (BitConverter.GetBytes (value), 0, 4);
- }
-
- public void Write (byte[] buffer)
- {
- _stream.Write (buffer, 0, buffer.Length);
- }
- public void Write (byte[] buffer, int start, int size)
- {
- _stream.Write (buffer, start, size);
- }
- }
- }
|