【发布时间】:2012-02-03 05:54:05
【问题描述】:
是否可以从字节数组或流中获取文件名? 我不会保存文件。我只是想找回它的名字。
【问题讨论】:
是否可以从字节数组或流中获取文件名? 我不会保存文件。我只是想找回它的名字。
【问题讨论】:
您将无法从字节数组中获取文件名。相反,您需要 filestream 来获取文件的名称。字节数组不存储名称。
【讨论】:
不,这是不可能的(好吧,所以在FileStream 课堂上可能是可能的,每天都能学到新东西!)。
字节数组或流表示文件的内容,而不是关于文件的 Windows 元数据 .
有很多简单的方法可以保留这些信息,但由于不了解您的情况,我无法提供解决方案。
【讨论】:
如果Stream 实际上是FileStream,则可能可以通过转换为FileStream 并访问.Name 属性来获得:
Stream stream = ...
FileStream fs = stream as FileStream;
if(fs != null) Console.WriteLine(fs.Name);
但是,一般情况下:不,这不可用。 byte[] 当然没有文件名的概念,大多数其他类型的流也没有。同样,被其他流(压缩、加密、缓冲等)包装的FileStream 基本流不会公开此类信息,尽管底层流(向下几层)是一个文件。
我会单独处理文件名。
【讨论】:
所有文件信息(例如名称、扩展名等)都是实际文件元数据的一部分。字节数组将只保存实际数据。如果字节数组本身包含元数据(例如 xml 文件),则可能有可能......但是,您需要知道类型以及具体在哪里查看。
【讨论】: