0

So I have tried using trinet core io ntfs dll to get to alternative data streams in C# (using VS 2015), but I have a problem: i couldn't find a way to write into a file. The code I tried:

var fileinfo = new FileInfo(filename);
var altstream = fileinfo.GetAlternateDataStream("key").OpenWrite();
altstream.WriteLine(Convert.ToString(radix));
altstream.WriteLine(Convert.ToString(push));
altstream.WriteLine(Convert.ToString(mult));
altstream.WriteLine(Convert.ToString(fill));

It just throws an error message before debug:

'FileStream' does not contain a definition for 'WriteLine' and no extension method 'WriteLine' accepting a first argument of type 'FileStream' could be found (are you missing a using directive or an assembly reference?)

How should I do it? I can't find this on the web but need the use of alternative data streams for my project.

1 Answers1

1

altstream is a FileStream instance. FileStream only understands bytes, not strings. In order to convert strings (characters) to bytes, you have to pick a character encoding system, for instance Ascii, UTF8, UTF16, etc.

Once you've picked an encoding, you can use the StreamWriter class to be able to directly write strings to files:

FileStream altstream = fileinfo.GetAlternateDataStream("key").OpenWrite();

// Note that I've picked UTF8 as an encoding. You need to figure out
// for yourself, based on your requirements or desires, what encoding
// to use. UTF8 is a popular encoding though.
StreamWriter altstreamWriter = new StreamWriter( altstream, Encoding.UTF8 );

altstreamWriter.WriteLine(Convert.ToString(radix));
altstreamWriter.WriteLine(Convert.ToString(push));
altstreamWriter.WriteLine(Convert.ToString(mult));
altstreamWriter.WriteLine(Convert.ToString(fill));
antiduh
  • 11,853
  • 4
  • 43
  • 66