バイト配列またはストリームからファイル名を取得できますか?ファイルを保存したくない。名前を取得したいだけです。
Stream
が実際にFileStream
である場合、FileStream
にキャストして.Name
プロパティにアクセスすることで、これを使用できます。
Stream stream = ...
FileStream fs = stream as FileStream;
if(fs != null) Console.WriteLine(fs.Name);
ただし、一般的な場合:いいえ、これは使用できません。 byte[]
確かににはファイル名の概念がなく、他のほとんどのタイプのストリームもありません。同様に、他のストリーム(圧縮、暗号化、バッファリングなど)によってラップされているFileStream
ベースストリームは、基になるストリーム(数層下)がファイルであっても、そのような情報を公開しません。
ファイル名は別に扱います。
いいえ、これは不可能です(承知したので、FileStream
クラスで可能かもしれません。毎日何か新しいことを学んでください!)。
バイト配列またはストリームは、Windowsではなく、ファイルのcontentを表しますmetadataファイルについて。
この情報を保持する多くの単純な方法がありますが、あなたの状況についてこれ以上知らないので、私は解決策を提供できません。
すべてのファイル情報(名前、拡張子など)は、実際のファイルのメタデータの一部です。バイト配列は実際のデータのみを保持します。バイト配列自体がメタデータ(例:xmlファイル)を保持している場合は、可能性がありますが、タイプと具体的にどこを見るかを知る必要があります。
バイト配列からファイル名を取得することはできません。代わりに、ファイルストリームの名前を取得する必要があります。バイト配列は名前を格納しません。