[ Team LiB ] Previous Section Next Section

FileStreamCF 1.0, ECMA 1.0, marshal by reference, disposable

System.IO (mscorlib.dll)class

This class is the basic implementation of Stream for files. It implements Stream, and adds a few methods specifically for working with files. Handle allows you to grab the underlying system handle to the file resource. IsAsync tells you if the file was opened asynchronously or synchronously. If you want to prevent other processes from accessing parts (or all) of the file, call Lock( ). Subsequently, to free the lock, call Unlock( ).

Note that using the Lock( ) or Unlock( ) methods is not the same as using the lock keyword in C#. The lock action locks only for this process, whereas the file-range locks used in the Lock/Unlock methods are implemented at the filesystem level and are therefore a cross-process mechanism.

public class FileStream : Stream {
// Public Constructors
   public FileStream(IntPtr handle, FileAccess access);
   public FileStream(IntPtr handle, FileAccess access, bool ownsHandle);
   public FileStream(IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize);
   public FileStream(IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize, 
        bool isAsync);
   public FileStream(string path, FileMode mode);
   public FileStream(string path, FileMode mode, FileAccess access);
   public FileStream(string path, FileMode mode, FileAccess access, FileShare share);
   public FileStream(string
 path, FileMode mode, FileAccess access, FileShare share, 
        int bufferSize);
   public FileStream(string path, FileMode mode, FileAccess access, FileShare share, 
        int bufferSize, bool useAsync);
// Public Instance Properties
   public override bool CanRead{get; }   
// overrides Stream
   public override bool CanSeek{get; }   
// overrides Stream
   public override bool CanWrite{get; }  
// overrides Stream
   public virtual IntPtr Handle{get; }
   public virtual bool IsAsync{get; }
   public override long Length{get; }    
// overrides Stream
   public string Name{get; }
   public override long Position{set; get; }          
// overrides Stream
// Public Instance Methods
   public override IAsyncResult BeginRead(byte[ ] array, int offset, int numBytes,
       AsyncCallback userCallback, object stateObject)
// overrides Stream
   public override IAsyncResult BeginWrite(byte[ ] array, int offset, int numBytes,
       AsyncCallback userCallback, object stateObject)
// overrides Stream
   public override void Close( );         
// overrides Stream
   public override int EndRead(IAsyncResult asyncResult);  
// overrides Stream
   public override void EndWrite(IAsyncResult asyncResult);     
// overrides Stream
   public override void Flush( );         
// overrides Stream
   public virtual void Lock(long position, long length);
   public override int Read(in byte[ ] array, int offset, int count)
// overrides Stream
   public override int ReadByte( );       
// overrides Stream
   public override long Seek(long offset, SeekOrigin origin);
// overrides Stream
   public override void SetLength(long value);       
// overrides Stream
   public virtual void Unlock(long position, long length);
   public override void Write(byte[ ] array, int offset, int count)
// overrides Stream
   public override void WriteByte(byte value);       
// overrides Stream
// Protected Instance Methods
   protected virtual void Dispose(bool disposing);
   protected override void Finalize( );   
// overrides object
}

Hierarchy

System.Object System.MarshalByRefObject Stream(System.IDisposable) FileStream

Subclasses

System.IO.IsolatedStorage.IsolatedStorageFileStream

Returned By

File.{Create( ), Open( ), OpenRead( ), OpenWrite( )}, FileInfo.{Create( ), Open( ), OpenRead( ), OpenWrite( )}, System.Reflection.Assembly.{GetFile( ), GetFiles( )}

Passed To

System.Reflection.StrongNameKeyPair.StrongNameKeyPair( )

    [ Team LiB ] Previous Section Next Section