简体   繁体   中英

Determining file extension given a FileStream

Is there any way to know the type of the FileStream . I have a function that takes a FileStream object and I want to determine the file extension based on that FileStream .

If the stream is really a FileStream then you should be able to do the following

var ext = Path.GetExtension(fileStream.Name);

If it's a plain old Stream though then it's not generally possible to get the extension because a Stream can be created for any stream of bytes. It doesn't have to have a backing file.

Update

As Chris pointed out in the comments there is another SO question which is relevant to this discussion. It's discussing heuristics for determining type of a byte[] which can then be mapped to a probable original signature.

It's by no means foolproof but may be helpful to you.

 string extension = Path.GetExtension(myFileStream.Name);

Yes, using the file name the following will return .txt (including the . ):

var path = myFileStream.Name;
return Path.GetExtension(path);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM