可以从字节数组或流中获取文件名吗?我不想保存文件。我只想找回这个名字。
如果Stream
实际上是FileStream
,那么可以通过投射到FileStream
并访问.Name
属性来获得:
Stream stream = ...
FileStream fs = stream as FileStream;
if(fs != null) Console.WriteLine(fs.Name);
但是,在一般情况下:不,这是不可用的。 byte[]
当然没有文件名的概念,大多数其他类型的流也没有。同样,由其他流(压缩,加密,缓冲等)包装的FileStream
基本流将不会暴露此类信息,尽管底层流(几层向下)是文件。
我会分别处理文件名。
不,这是不可能的(好吧,所以它可能在FileStream
课上,每天学习新东西!)。
字节数组或流表示文件的内容,而不是有关该文件的Windows元数据。
有很多直接的方法可以保留这些信息,但不了解您的情况我无法提供解决方案。
所有文件信息(例如名称,扩展名等)都是实际文件的元数据的一部分。字节数组只保存实际数据。如果字节数组本身包含元数据(例如xml文件),则可能...但是,您需要知道类型以及具体的查找位置。
您将无法从字节数组中获取文件名。相反,您需要filestream来获取文件的名称。字节数组不存储名称。