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 } HierarchySystem.Object System.MarshalByRefObject Stream(System.IDisposable) FileStream SubclassesSystem.IO.IsolatedStorage.IsolatedStorageFileStream Returned ByFile.{Create( ) , Open ( ) , OpenRead( ) , OpenWrite( )} , FileInfo.{Create( ) , Open( ) , OpenRead( ) , OpenWrite( )} , System.Reflection.Assembly.{GetFile( ) , GetFiles( )} Passed ToSystem.Reflection.StrongNameKeyPair.StrongNameKeyPair( ) |