के रूप में 7z फ़ाइलों का इलाज करना मैं एकाधिक स्ट्रीम ऑपरेशंस को चेन करना चाहता हूं (जैसे फ़ाइल डाउनलोड करना, फ्लाई पर असम्पीडित करना, और बिना किसी अस्थायी फ़ाइलों के डेटा को प्रोसेस करना)। फाइल 7z प्रारूप में हैं। एक एलजेएमएमए एसडीके उपलब्ध है, लेकिन मुझे स्ट्रीम होने की बजाए बाहरी आउटपुट स्ट्रीम बनाने के लिए मजबूर करता है - दूसरे शब्दों में आउटपुट स्ट्रीम को इसके साथ काम करने से पहले पूरी तरह से लिखा जाना चाहिए। SevenZipSharp भी इस कार्यक्षमता को याद कर रहा है।.NET स्ट्रीम
क्या किसी ने ऐसा कुछ किया है?
// in pseudo-code - CompressedFileStream derives from Stream
foreach (CompressedFileStream f in SevenZip.UncompressFiles(Web.GetStreamFromWeb(url))
{
Console.WriteLine("Processing file {0}", f.Name);
ProcessStream(f); // further streaming, like decoding, processing, etc
}
प्रत्येक फ़ाइल धारा की तरह व्यवहार करते हैं एक-पढ़ने के लिए एक बार एक फ़ाइल का प्रतिनिधित्व करने, और मुख्य संकुचित धारा पर MoveNext बुला() स्वचालित रूप से & उस फ़ाइल को छोड़ अमान्य हैं स्ट्रीम।
संपीड़न के लिए इसी तरह की संरचनाएं की जा सकती हैं। उदाहरण उपयोग - डेटा की एक बड़ी मात्रा पर कुछ एकत्रीकरण करें - प्रत्येक फ़ाइल में प्रत्येक डेटा लाइन के लिए, प्रत्येक फ़ाइल के लिए, प्रत्येक फ़ाइल में प्रत्येक 7z फ़ाइल के लिए, प्रत्येक मान में प्रत्येक डेटा लाइन के लिए, कुछ मान योग करें।
अद्यतन 2012-01-06
#ziplib (SharpZipLib) पहले से ही वास्तव में क्या मैं ZipInputStream
वर्ग के साथ ज़िप फ़ाइलें के लिए की जरूरत है। यहां एक उदाहरण दिया गया है जो किसी भी ज़िप फ़ाइल के अंदर सभी फ़ाइलों को अदृश्य धाराओं के रूप में उत्पन्न करता है। अभी भी 7z समाधान की तलाश में है।
IEnumerable<Stream> UnZipStream(Stream stream)
{
using (var zipStream = new ZipInputStream(stream))
{
ZipEntry entry;
while ((entry = zipStream.GetNextEntry()) != null)
if (entry.IsFile)
yield return zipStream;
}
}
मुझे यकीन नहीं है कि मैं समझता हूं कि शब्द/रेखा सीमाओं से आपका क्या मतलब है। 'संपीड़ित फ़ाइलस्ट्रीम' ऑब्जेक्ट उस क्षण को वापस कर दिया गया है जब सेवनज़िप को पूरी फ़ाइल प्राप्त करने के बाद स्ट्रीम से फ़ाइल शीर्षलेख प्राप्त होता है। डिकंप्रेस्ड फ़ाइल के डेटा को पढ़ने से स्रोत स्ट्रीम भी अग्रिम हो जाता है। – Yurik