alın Dosya adı bayt dizisinden mi yoksa akışla mı alınabilir? Dosyayı kaydetmek istemiyorum. Sadece ismi almak istiyorum.Dosya adını bayt dizisinden veya Stream
cevap
, o zaman bu .Name
özelliği FileStream
için döküm ve erişerek mevcut olabilir hayır, bu değil mevcut. Bir byte[]
kesinlikle'un bir dosya adı kavramı yoktur ve diğer akış türlerinin çoğu da yoktur. Benzer şekilde, diğer akışlar tarafından sarılmış bir FileStream
taban akışının (sıkıştırma, şifreleme, arabelleğe alma, vb.), Temeldeki akışa (birkaç kat aşağı) bir dosya olmasına rağmen, bu tür bilgileri ortaya çıkarmayacaktır.
Dosya adını ayrı ayrı ele alırım.
Hayır, bu mümkün değil (tamam, FileStream
sınıfında bu mümkün olabilir, her gün yeni bir şeyler öğrenin!).
bir bayt dizisi veya dere dosya hakkında içerik dosyasının değil, Windows meta temsil eder.
Bu bilgileri saklamak için pek çok yol var, ancak durumunuz hakkında daha fazla bir şey bilmiyorum bir çözüm sunamıyorum.
Merhaba @Adam, anlıyorum. Yardımın için sağol. – Gus
Tüm dosya bilgileri (ad, uzantı vb.) Gerçek dosya için meta verilerinin bir parçasıdır. Bayt dizisi yalnızca gerçek verileri tutacaktır. Bayt dizisinin kendisinin meta verilerini (örneğin bir xml dosyası) tutması mümkün olabilir ... ancak, türü ve özellikle de nereye bakacağını bilmeniz gerekir.
Stream stream = ...
FileStream fs = stream as FileStream;
if(fs != null) Console.WriteLine(fs.Name);
Ancak
, genel durumda yılında : Stream
aslında FileStream
ise
Hi @Code, Yardımcınız için teşekkürler. – Gus
Merhaba @mekici, bir .doc. – Gus