| 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);
 
- 		}
 
- 	}
 
- }
 
 
  |