Read the actual contents of text file using FileStream and these options c#

user1776480 picture user1776480 · Jan 3, 2013 · Viewed 57.6k times · Source

I need to open a text file within C# using FileStream and with the options mentioned below

var fileStream = new FileStream(filePath, 
                                FileMode.Open, 
                                FileAccess.Read, 
                                FileShare.Read, 64 * 1024,
                               (FileOptions)FILE_FLAG_NO_BUFFERING | 
                                  FileOptions.WriteThrough & FileOptions.SequentialScan);

The text file contains a "1" or "0" and after obtaining the results I am going to assign the contents of the text file to a string variable. In case you're interested, I need the above options in order to avoid Windows reading the text files from cache.

System.IO.File.ReadAllText()

... is not good enough.

Would somebody be kind enough to write a simple sub which incorporates these requirements for me please as the examples I've seen so far involve working with bytes and buffers (an area I really need to work on at this time) and leaves it at that.

Thanks

Answer

TheKingDave picture TheKingDave · Jan 3, 2013

Maybe something like:

    FileStream fileStream = new FileStream("[path]", FileMode.Open, FileAccess.Read, FileShare.Read, 64 * 1024,
        (FileOptions)0x20000000 | FileOptions.WriteThrough & FileOptions.SequentialScan);

    string fileContents;
    using (StreamReader reader = new StreamReader(fileStream))
    {
        fileContents = reader.ReadToEnd();
    }


    bool assignedvariable = Convert.ToBoolean(fileContents);

assignedvariable will hold true if the file contains 1 and false if it contains 0.

Sorry if this has been answered already people post very fast here.