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