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.
Read
andSeek
are methods on theStream
type, not justFileStream
. It's just that not every stream supports them. (Personally I prefer using thePosition
property 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.CopyTo
method 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.