What is the best method to convert a Stream to a FileStream using C#.
The function I am working on has a Stream passed to it containing uploaded data, and I need to be able to perform stream.Read(), stream.Seek() methods which are methods of the FileStream type.
A simple cast does not work, so I’m asking here for help.
ReadandSeekare methods on theStreamtype, not justFileStream. It’s just that not every stream supports them. (Personally I prefer using thePositionproperty over callingSeek, but they boil down to the same thing.)If you would prefer having the data in memory over dumping it to a file, why not just read it all into a
MemoryStream? That supports seeking. For example:Use:
This is similar to using the
Stream.CopyTomethod introduced in .NET 4.If you actually want to write to the file system, you could do something similar that first writes to the file then rewinds the stream… but then you’ll need to take care of deleting it afterwards, to avoid littering your disk with files.