Если Stream
на самом деле FileStream
, то этот может быть доступен путем приведения к FileStream
и доступа к свойству .Name
:
Stream stream = ...
FileStream fs = stream as FileStream;
if(fs != null) Console.WriteLine(fs.Name);
Однако в общем случае : нет, это недоступно. A byte[]
определенно не имеет понятия имени файла, как и большинство других типов потоков. Аналогично, базовый поток FileStream
, который оборачивается другими потоками (сжатие, шифрование, буферизация и т. Д.), Не будет предоставлять такую информацию, несмотря на то, что базовый поток (несколько уровней ниже) является файлом.
Я бы обработал имя файла отдельно.