簡體   English   中英

從字節數組或流中獲取文件名

[英]Get file name from byte array or Stream

是否可以從字節數組或流中獲取文件名? 我不會保存文件。 我只想找回它的名字。

如果Stream實際上是一個FileStream ,那么這可能是可通過轉換成FileStream和訪問.Name屬性:

Stream stream = ...
FileStream fs = stream as FileStream;
if(fs != null) Console.WriteLine(fs.Name);

但是,在一般情況下:不,這是不可用的。 byte[]當然沒有文件名的概念,大多數其他類型的流也沒有。 同樣,由其他流(壓縮、加密、緩沖等)包裝的FileStream基本流不會公開此類信息,盡管底層流(向下幾層)是一個文件。

我會單獨處理文件名。

不,這是不可能的(好吧,所以它可能在FileStream類上是可能的,每天學習新東西!)。

字節數組或流表示文件的內容,而不是有關文件的 Windows元數據

有很多直接的方法可以保留這些信息,但對您的情況一無所知,我無法提供解決方案。

所有文件信息(例如名稱、擴展名等)都是實際文件的元數據的一部分。 字節數組將只保存實際數據。 如果字節數組本身包含元數據(例如 xml 文件),則可能是可能的……但是,您需要知道類型以及具體的查找位置。

您將無法從字節數組中獲取文件名。 相反,您需要 filestream 來獲取文件的名稱。 字節數組不存儲名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM