2012-01-05 32 views

cevap

31

, 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.

+0

+1 Bu özelliği daha önce hiç görmedim, muhtemelen kullanmam mümkün olmasa da lol –

+0

Merhaba @Marc, mükemmel açıklamanız için teşekkürler. Sonucu denemeye çalışacağım. – Gus

+0

Merhaba, Bir FileStream döndürür, ancak istemci bir MessageBodyStream alır. Baska öneri? – Gus

14

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.

+0

Merhaba @Adam, anlıyorum. Yardımın için sağol. – Gus

4

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

+0

Hi @Code, Yardımcınız için teşekkürler. – Gus

İlgili konular