Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Добрый день, подскажите пож-ста, выгружаю 2 файла на сервер, затем мне надо их заархивировать, не пойму как можно это сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 17:37 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Паганель http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx Прошу прощения, забыл написать .NET 2.0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 17:47 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
переходите на новый фреймворк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 17:48 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
брррр чего это я http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream(v=vs.80).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 17:49 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Паганельбрррр чего это я всё равно переходить нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 18:13 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
hVosttsesh, винрар только этого не хватало под IIS ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 18:59 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
hVosttsesh, винрар Ты с дубу рухнул? По теме. Лучше 7 зип обвязки, которая может сжимать поток без файлового оверхеда, не встречал. Но новые возможности четверки тоже гуд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 20:35 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
ИзопропилПаганельбрррр чего это я всё равно переходить нужно хз я 2-го давно не видел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 21:18 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Паганель http://msdn.microsoft.com/en-us/library/system.io.compression.gzipstream.aspx Он не умеет паковать n файлов сразу. В топку. Вот мой велосипед на штатном ZipPackage. http://codearticles.ru/articles/1105 Если FW < 4.5, курим это: http://codearticles.ru/articles/1101 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2013, 23:04 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Вот мой велосипед на штатном ZipPackage. Ммм... File.ReadAllBytes... Шикарно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 11:07 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Нахлобучcooldeveloper2Вот мой велосипед на штатном ZipPackage. Ммм... File.ReadAllBytes... Шикарно. Ты о чём? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 11:12 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Чё-та Нахлобуч ляпнул какую-то глупость и слился... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 11:24 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2, ... а MemoryStream.CopyTo вы по каким-то причинам не используете, или ...? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 12:08 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Ты о чём?Да о велосипеде твоем. Все прогрессивное человечество использует потоковый ввод-вывод, а ты данные с архивом целиком в памяти держишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 12:10 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Нахлобучcooldeveloper2Ты о чём?Да о велосипеде твоем. Все прогрессивное человечество использует потоковый ввод-вывод, а ты данные с архивом целиком в памяти держишь. Ты перегрелся? Разуй глаза - мой велосипед работает только с потоками (через байтовый массив, без файлового оверхеда). А File.ReadAllBytes, о котором ты заикнулся, тупой демо пример инициализации зип пакета - как и через что ты соберешь массив байт, монопенисуально. Главное в велосипед подать n байтовых массивов и он родит тебе зип пакет (тоже из байтового массива). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 12:22 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
carrotik... а MemoryStream.CopyTo вы по каким-то причинам не используете, или ...? Да как-то из FW < 4.0 перелезло сюда в код... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 12:24 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Ты перегрелся? Разуй глаза - мой велосипед работает только с потоками Что значит "работает только с потоками"? Тот факт, что он внутри у себя вызывает всякие .GetStream() и создает MemoryStream'ы, не значит что он использует потоковый ввод-вывод потому что... cooldeveloper2...главное в велосипед подать n байтовых массивов и он родит тебе зип пакет (тоже из байтового массива). А cooldeveloper2...(через байтовый массив, без файлового оверхеда). -- это вообще какой-то чад и угар кутежа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 12:39 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучЧто значит "работает только с потоками"? Это значит, что он работает с MemoryStream и только с ним. Следовательно следующее утверждение... НахлобучТот факт, что он внутри у себя вызывает всякие .GetStream() и создает MemoryStream'ы, не значит что он использует потоковый ввод-вывод потому что... есть масло масляное. "Он работает с MemoryStream, но при этом не использует потоковый ввод-вывод" - какой-то феерический бред. Еще раз, для тех, кто заперся в танке и не хочет от туда выходить: в реализации используется MemoryStream. Вход выход - через массив байт. Точка. Нахлобучэто вообще какой-то чад и угар кутежа Чад с угаром, скорее всего, у того, кто "не использует потоковый ввод-вывод, но использует MemoryStream". Тут даже больше - клиника. P.S. Еще раз задам вопрос, вижу у тебя трудности с ответом: к чему ты ляпнул какую-то хрень про File.ReadAllBytes? Причем тут, вообще, File.ReadAllBytes? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 12:52 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Нахлобуч, смотри, чтобы тебе было проще ориентироваться в пространстве, я инициализировал пакеты для архива без File.ReadAllBytes. Только не спрашивай, как это мне удалось - не поверишь, это очень просто http://codearticles.ru/articles/1105 А теперь повторяю десятый раз вопрос. Причем тут File.ReadAllBytes и зачем ты ляпнул вот это 14452467 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:02 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Еще раз, для тех, кто заперся в танке и не хочет от туда выходить: в реализации используется MemoryStream. Вход выход - через массив байт. Точка.Внутри он может хоть черта лысого использовать, но если в публичном API используются byte[], то это значит, что мне для получения Zip-архива нужно сначала считать в массив в памяти все исходные данные, затолкать в твой велосипед и на выходе получить еще один массив в памяти. Вот это -- все что угодно, но только не потоковый ввод вывод . И прочитай, пожалуйста, текст по ссылке, не соскакивай. cooldeveloper2P.S. Еще раз задам вопрос, вижу у тебя трудности с ответом: к чему ты ляпнул какую-то хрень про File.ReadAllBytes? Причем тут, вообще, File.ReadAllBytes?При том, что File.ReadAllBytes прекрасно иллюстрирует ущербность такого подхода. Что делать с файлами нетривиального размера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:05 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучВнутри он может хоть черта лысого использовать, но если в публичном API используются byte[], то это значит, что мне для получения Zip-архива нужно сначала считать в массив в памяти все исходные данные, затолкать в твой велосипед и на выходе получить еще один массив в памяти. Умничка, пятерка! А причем тут File.ReadAllBytes? НахлобучВот это -- все что угодно, но только не потоковый ввод вывод . И прочитай, пожалуйста, текст по ссылке, не соскакивай. А что тут читать и соскакивать? Мне не нужны на входе и выходе стримы, мне нужен честный поток байтов, чтобы отправить его, например, в БД. Зачем мне тут стрим? НахлобучПри том, что File.ReadAllBytes прекрасно иллюстрирует ущербность такого подхода. Что делать с файлами нетривиального размера? Ущербность подхода в твоей голове, которая не понимает, что собрать байтовый массив можно любым другим способом. Сечешь фишку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:14 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2мне нужен честный поток байтов, чтобы отправить его, например, в БД. Зачем мне тут стрим? у меня когнитивный диссонанс возник ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:18 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропилcooldeveloper2мне нужен честный поток набор байтов, чтобы отправить его, например, в БД. Зачем мне тут стрим? у меня когнитивный диссонанс возник Не придирайся, мысль понятна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:21 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2, я не придираюсь, для отправки BLOB в базу совершено необязательно(бывает и невозможно) весь BLOB предварительно помещать в массив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:25 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Что делать с файлами нетривиального размера? В зависимости от задачи. Если нужно писать в БД, то так или иначе нужна конвертация в массив байт. Так же если нужно файл снять с БД и отправить в Response клиенту - тоже нужна байтовая конвертация. Для тех, кто окончательно заперся в танке: суть рецепта в том, чтобы показать, как можно удобно работать со штатным архиватором, а не в том, чтобы научить пользоваться стримом. Сечешь фишку? Для тех, кому нужна работа именно через стрим, пишется по аналогии еще один метод: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. В чем проблема? P.S. Для ряда задач требовалось работать исключительно с массивом байт и только с ним. Так ты ответь на вопрос, с массивом байт запрещено работать, что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:31 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропилдля отправки BLOB в базу совершено необязательно(бывает и невозможно) весь BLOB предварительно помещать в массив Для 99.9% задач (особенно для EF и L2S) требуется обязательно помещать такой объект в массив. Читать про System.Data.Linq.Binary и иже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:34 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Умничка, пятерка! А причем тут File.ReadAllBytes? Повторю: НахлобучПри том, что File.ReadAllBytes прекрасно иллюстрирует ущербность такого подхода. Что делать с файлами нетривиального размера? И ты так и не сказал, как мне быть с большими файлами. Тоже в память читать? cooldeveloper2А что тут читать и соскакивать? Мне не нужны на входе и выходе стримы, мне нужен честный поток байтов, чтобы отправить его, например, в БД. Зачем мне тут стрим?Так ты прочитал? И скажи, ты различаешь понятия "поток" и "массив"? Допущу, что это опечатка, но это не отменяет следующего наблюдения. Если тебе "не нужные на входе и выходе стримы", то это совершенно не значит, что они не нужны остальным. Форум читают люди разного уровня и новички вполне могут взять и скопировать твой код как есть. Если принять сам феномен карго-культа в программировании как данность, то остается безрадостный факт: в их проект попадет код, который в общем случае будет заваливать систему по OutOfMemoryException. Коли ты решил делиться знаниями, то делай это со всей ответственностью. В интернете и так хватает плохого кода. cooldeveloper2Ущербность подхода в твоей голове, которая не понимает, что собрать байтовый массив можно любым другим способом. Сечешь фишку?Давай ты уже вырастешь над собой и прекратишь использовать аргументацию ad hominem? К тому же, решение а-ля Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. будет гораздо более общно и менее ресурсоемко твого жонглирование массивами байтов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:34 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Если нужно писать в БД, то так или иначе нужна конвертация в массив байт. чанками (chunk) писать религия запрещает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:35 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2 Код: c# 1. 2. 3. 4. 5. 6. В чем проблема? Nice try, bro. Давай пока не касаться зверя под названием ZipMemory. Скажи мне, архив где будет сформирован? Мне кажется, что он снова целиком окажется в памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:40 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучИ ты так и не сказал, как мне быть с большими файлами. Тоже в память читать? Выше написал. НахлобучТак ты прочитал? И скажи, ты различаешь понятия "поток" и "массив"? Допущу, что это опечатка, но это не отменяет следующего наблюдения. Что ты куришь там у себя? Еще раз повторяю, рецепт сделан только под байтовый обмен. Если нужна адаптация под потоковый ввод вывод, класс дополняется еще двумя методами. В чем проблема? НахлобучЕсли тебе "не нужные на входе и выходе стримы", то это совершенно не значит, что они не нужны остальным. Если другим нужны стримы, то это совершенно не значит, что они должны фигурировать в моем рецепте, который учит работать с классом ZipPackage. НахлобучФорум читают люди разного уровня и новички вполне могут взять и скопировать твой код как есть. Его и так можно копировать как есть, он полностью рабочий и отлаженный. Заточен только под байтовые операции. НахлобучДавай ты уже вырастешь над собой и прекратишь использовать аргументацию ad hominem? Давай ты уже поумнеешь и начнешь аргументировать по существу, а не лишь бы ляпнуть. НахлобучК тому же, решение а-ля будет гораздо более общно и менее ресурсоемко твого жонглирование массивами байтов. Не принципиально абсолютно. Для стримов можно ввести второй класс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:43 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропилcooldeveloper2Если нужно писать в БД, то так или иначе нужна конвертация в массив байт. чанками (chunk) писать религия запрещает? Пример чанков MemoryStream для EF в студию. P.S. Даже SqlFileStream (SQL Server FileStream) читает только массив байт. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:47 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Нахлобучcooldeveloper2 Код: c# 1. 2. 3. 4. 5. 6. В чем проблема? Nice try, bro. Давай пока не касаться зверя под названием ZipMemory. Скажи мне, архив где будет сформирован? Мне кажется, что он снова целиком окажется в памяти. Отгадай с двух раз? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 13:48 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучЕсли тебе "не нужные на входе и выходе стримы", то это совершенно не значит, что они не нужны остальным Вопрос для теоретиков, которые много думают, но мало делают: рассмотрим штатный класс SqlFileStream , который предназначен для работы с MS SQL FileStream. Почему разработчики класса предусмотрели Read / Write только для байтового массива? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:05 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Вопрос для теоретиков, которые много думают, но мало делают: рассмотрим штатный класс SqlFileStream , который предназначен для работы с MS SQL FileStream. Почему разработчики класса предусмотрели Read / Write только для байтового массива?Раз уж ты заговорил, то рассмотри за компанию штатные классы FileStream, MemoryStream и прочих наследников Stream. Я уверен, что ты заметишь предусмотренные разработчиками методы ReadByte/WriteByte. Следовательно, твой аргумент некорректент. Скажи мне лучше: ты различаешь принципиальную разницу между "считать все данные в память и создать архив в памяти" и "считать часть данных из потока, заархивировать и положить в другой поток"? Какой подход, по твоему мнению несомненного практика, который много делает, обладает большей общностью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:15 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Выше написал.Это ты про public static MemoryStream Create(params ZipMemory[] data)? Извини, незачет -- все как было в памяти, так и остается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:16 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучРаз уж ты заговорил, то рассмотри за компанию штатные классы FileStream, MemoryStream и прочих наследников Stream. Я уверен, что ты заметишь предусмотренные разработчиками методы ReadByte/WriteByte. Следовательно, твой аргумент некорректент. Не торопи коней с некорректностью. Итак, у меня есть файл на диске. Через File.OpenRead я инстанциирую честный FileStream для дескриптора этого файла. Пока всё хорошо, никаких преобразований в массив байт. Теперь мне нужно отправить этот файл в FILESTREAM сиквел сервера. Как раз для этих телодвижений используется SqlFileStream. Твои действия? НахлобучСкажи мне лучше: ты различаешь принципиальную разницу между "считать все данные в память и создать архив в памяти" и "считать часть данных из потока, заархивировать и положить в другой поток"? Какой подход, по твоему мнению несомненного практика, который много делает, обладает большей общностью? Отвечаю на заданный вопрос: я различаю (причем, принципиально) понятия "считать всё" и "считать только порцию". Так вот открою тебе истину: для большинства задач требуется именно работать с байтовыми операциями, а не с потоковыми. Примеры я приводил: считать / записать файл в базу, отправить файл в Response клиенту через Response.BinaryWrite, прочиать аплоад, снять массив байт с устройства, ну и так далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:27 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2НахлобучЕсли тебе "не нужные на входе и выходе стримы", то это совершенно не значит, что они не нужны остальным Вопрос для теоретиков, которые много думают, но мало делают: рассмотрим штатный класс SqlFileStream , который предназначен для работы с MS SQL FileStream. Почему разработчики класса предусмотрели Read / Write только для байтового массива?самый универсальный метод. в том числе для потоковой обработки: прочитал 1024 байта, обработал, отправил в респонс или куда там, и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:27 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Нахлобучcooldeveloper2Выше написал.Это ты про public static MemoryStream Create(params ZipMemory[] data)? Извини, незачет -- все как было в памяти, так и остается. Присаживайся, двойка. Память чиста как девственный лес, имеется только указатель на дескриптор файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:28 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Примеры я приводил: считать / записать файл в базу, отправить файл в Response клиенту через Response.BinaryWrite, прочиать аплоад, снять массив байт с устройства, ну и так далее.вот все эти вещи можно делать не целиком, а кусочками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:28 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
seshДобрый день, подскажите пож-ста, выгружаю 2 файла на сервер, затем мне надо их заархивировать, не пойму как можно это сделать Чё-то я не понимаю. ТС Написал:"...выгружаю 2 файла на сервер, затем мне надо их заархивировать...". При чём здесь какие-то стримы и т.п.? Вызовите внешнюю программу (см. System.Diagnostics.Process, по-моему), например rar.exe или ещё чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:29 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Яростный Мечcooldeveloper2пропущено... Вопрос для теоретиков, которые много думают, но мало делают: рассмотрим штатный класс SqlFileStream , который предназначен для работы с MS SQL FileStream. Почему разработчики класса предусмотрели Read / Write только для байтового массива?самый универсальный метод. в том числе для потоковой обработки: прочитал 1024 байта, обработал, отправил в респонс или куда там, и т.д. Именно, Меч. С байтами работать одно удовольствие - не нужно ничего диспоузить, не нужны никакие хендлы. Всё просто и очевидно: отдал байты, получил байты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:30 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2очевидно: отдал байты, получил байты. ВСЕ байты то зачем за один приём? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:30 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Яростный Мечcooldeveloper2Примеры я приводил: считать / записать файл в базу, отправить файл в Response клиенту через Response.BinaryWrite, прочиать аплоад, снять массив байт с устройства, ну и так далее.вот все эти вещи можно делать не целиком, а кусочками Ну вот я попросил Изопропила сделать чанкинг для EF. До сих пор пишет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:31 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропилcooldeveloper2очевидно: отдал байты, получил байты. ВСЕ байты то зачем за один приём? А какие проблемы? Я кидаю файл в БД и руководствуюсь рекомендациями от MS по размеру блобов. Следовательно, никаких гигабайтов в базе не должно быть и в помине. Где ответ на мой вопрос? 14453705 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:32 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2 отправить файл в Response клиенту через Response.BinaryWriteА чем Response.WriteFile не угодил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:33 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Antonariycooldeveloper2 отправить файл в Response клиенту через Response.BinaryWriteА чем Response.WriteFile не угодил? А причем тут файл? Я прочитал из БД блоб (картинка) и хочу сразу отдать клиенту в Response. Ты предлагаешь картинку сохранять на диск? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:36 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Antonariycooldeveloper2 отправить файл в Response клиенту через Response.BinaryWriteА чем Response.WriteFile не угодил?он тут не совсем в тему, но насколько я знаю, лучше юзать Response.TransmitFile ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:38 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Дык кто-нибудь ответит? 14454110 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:39 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
ShSergeДык кто-нибудь ответит? 14454110 способ с винрар обсудили ранее и признали негодным ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:41 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Яростный МечShSergeДык кто-нибудь ответит? 14454110 способ с винрар обсудили ранее и признали негодным ) Я не про винрар говорил, а просто про рар из коммандной строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:42 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Яростный МечAntonariyпропущено... А чем Response.WriteFile не угодил?он тут не совсем в тему, но насколько я знаю, лучше юзать Response.TransmitFile Response.TransmitFile - это по сути исправление убогого Response.WriteFile, который грузил файл в память апп сервера. Появился в .NET 2.0. ShSergeДык кто-нибудь ответит? 14454110 Серж, запускать на сервере приложений какие-то левые exe - зло. Винрар платен. Винрар на сервере зло. А так да, хороший вариант ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:44 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
ShSergeЯростный Мечпропущено... способ с винрар обсудили ранее и признали негодным ) Я не про винрар говорил, а просто про рар из коммандной строки. А рар - это не винрар? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:44 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Теперь мне нужно отправить этот файл в FILESTREAM сиквел сервера. Как раз для этих телодвижений используется SqlFileStream. Твои действия? Очевидно, fileStream.CopyTo(sqlFileStream), который будет читать данные из fileStream в буфер (массив байт, если тебе угодно) и этот буфер записывать в sqlFileStream. Ааа, это был хитрый план, я понял! Ты сейчас ухватишься за "массив байт" и засчитаешь мне слив, да? Хорошо, я напишу свой Copy: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. Это как, потоковая операция или байтовая? Или интовая, может быть? cooldeveloper2Так вот открою тебе истину: для большинства задач требуется именно работать с байтовыми операциями, а не с потоковыми. Да-да, срыв покровов. Осталось понять, что ты понимаешь под байтовыми операциями, а что под потоковыми. Если сойтись на определении из Вики , то cooldeveloper2Примеры я приводил: считать / записать файл в базу Неверно. SqlFileStream, о котором ты говорит, это самый что ни наесть потоковый ввод-вывод. cooldeveloper2отправить файл в Response клиенту через Response.BinaryWrite Неверно, есть HttpResponse.OutputStream. cooldeveloper2прочиать аплоад Неверно, есть HttpPostedFile.InputStream или вообще HttpRequest.InputStream cooldeveloper2снять массив байт с устройстваВозможно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:46 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2ShSergeпропущено... Я не про винрар говорил, а просто про рар из коммандной строки. А рар - это не винрар? :) Это бесплатная штука, которая работает из-под коммандной строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:47 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Antonariycooldeveloper2отправить файл А причем тут файл ? Ни при чем конечно. Файл и файл — вообще ничего общего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:47 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Яростный Мечно насколько я знаю, лучше юзать Response.TransmitFileОк, приму к сведению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:48 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Присаживайся, двойка. Память чиста как девственный лес, имеется только указатель на дескриптор файла.Ты правда не понимаешь или придуриваешься? Код: c# 1. 2. 3. 4. 5. В памяти будет содержимое каждого файла из c:\windows\system32 плюс сам архив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:52 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
ShSergeЭто бесплатная штука, которая работает из-под коммандной строки. кто разрешил процессы запускать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 14:58 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучАаа, это был хитрый план, я понял! Ты сейчас ухватишься за "массив байт" и засчитаешь мне слив, да? Хорошо, я напишу свой Copy Глупенький, я тебе хочу объяснить на пальцах, что в большинстве задач вполне можно и нужно обходиться обычным байтовым массивом. Ты это уяснил? Далее. CopyTo появился только в WF 4.0, а как же быть FW 3.5 и ниже? Докладываю по существу, SqlFileStream не реализует загрузку данных из потока, разработчики не позаботились. Что и требовалось доказать. НахлобучЭто как, потоковая операция или байтовая? Или интовая, может быть? Зачем мне твои интовые операции, если я читаю файл с БД и отправляю его в Response клиенту? Или ты предлагаешь дополнительно его обернуть в MemoryStream и отдать через Response.OutputStream? Уволен без выплаты зарплаты. НахлобучДа-да, срыв покровов. Осталось понять, что ты понимаешь под байтовыми операциями, а что под потоковыми. Если у тебя туго с мозгами, что поясню: байтовые операции - это операции с byte[], потоковые - с Stream. Так лучше? До тебя ни у кого вопросов по этому поводу не возникало. НахлобучНеверно. SqlFileStream, о котором ты говорит, это самый что ни наесть потоковый ввод-вывод Присаживайся, двойка. У меня есть свой поток Stream, я его хочу загнать в SqlFileStream. Так вот SqlFileStream не поддерживает загрузки данных из потока. Для FW < 4.0. Именно про это я тебе и писал. Нахлобучcooldeveloper2отправить файл в Response клиенту через Response.BinaryWrite Неверно, есть HttpResponse.OutputStream. Садись, двойка. Ты предлагаешь читать файл из базы, создавать отдельный поток и отправлять его в OutputStream? Кхе..кхе. НахлобучНеверно, есть HttpPostedFile.InputStream или вообще HttpRequest.InputStream Зачем мне нужен поток, если я собираюсь писать пакет байт в БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:04 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
ИзопропилShSergeЭто бесплатная штука, которая работает из-под коммандной строки. кто разрешил процессы запускать? Всё, что не запрещено - разрешено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:04 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Antonariycooldeveloper2пропущено... А причем тут файл ? Ни при чем конечно. Файл и файл — вообще ничего общего. Ты выдрал из контекста: 14454143 cooldeveloper2Я кидаю файл в БД и руководствуюсь рекомендациями от MS по размеру блобов. После того, как файл записан в БД, он перестает быть "файлом". Далее я его читаю как массив байт (тот же EF) и отправляю в Response. Итак, еще раз, причем тут файл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:06 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2CopyTo появился только в WF 4.0, а как же быть FW 3.5 и ниже?А кто у нас на каждом углу вопит о переходе на последний фреймворк? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:07 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Нахлобучcooldeveloper2Присаживайся, двойка. Память чиста как девственный лес, имеется только указатель на дескриптор файла.Ты правда не понимаешь или придуриваешься? Код: c# 1. 2. 3. 4. 5. В памяти будет содержимое каждого файла из c:\windows\system32 плюс сам архив. Ты головой тронулся? Еще раз смотри реализацию ZipMemory: 14453716 Какой нафик new ZipMemory(file, File.ReadAllBytes(file)) ??? Тебе бы пирожки печь, а не код писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:08 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Далее я его читаю как массив байт (тот же EF) и отправляю в Response.Если бы ты сразу писал грамотно, а не размазывал многозначительные сопли, вопросов бы не было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:10 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Antonariycooldeveloper2CopyTo появился только в WF 4.0, а как же быть FW 3.5 и ниже?А кто у нас на каждом углу вопит о переходе на последний фреймворк? Я! P.S. Коду сто лет, тем он и хорош, т.к. ZipPackage аж с FW 3.0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:10 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Antonariycooldeveloper2Далее я его читаю как массив байт (тот же EF) и отправляю в Response.Если бы ты сразу писал грамотно, а не размазывал многозначительные сопли, вопросов бы не было. Ну а я виноват, что ты читаешь с середины, а не с начала дискуссии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:11 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Antonariyпропущено... Если бы ты сразу писал грамотно, а не размазывал многозначительные сопли, вопросов бы не было. Ну а я виноват, что ты читаешь с середины, а не с начала дискуссии?Ты виноват в том, что в разных местах одну и ту же сущность называешь по-разному, и хрен поймешь, то ли случайно ошибся, то ли решил целенаправленно сдриснуть с темы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:13 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
AntonariyТы виноват в том, что в разных местах одну и ту же сущность называешь по-разному, и хрен поймешь, то ли случайно ошибся, то ли решил целенаправленно сдриснуть с темы. Для тех, кто учавствует в дискусии, всё понятно. А те, кто пришел сюда чисто жалом водить и ныть, что им ничего не понятно, - в сад! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:15 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2AntonariyТы виноват в том, что в разных местах одну и ту же сущность называешь по-разному, и хрен поймешь, то ли случайно ошибся, то ли решил целенаправленно сдриснуть с темы. Для тех, кто учавствует в дискусии, всё понятно. А те, кто пришел сюда чисто жалом водить и ныть, что им ничего не понятно, - в сад! Отмазку галимей сложно представить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:16 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
AntonariyОтмазку галимей сложно представить :) Ну а что мне ещё предложить тому, кто читает жопой да ещё и с середины темы? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:17 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Глупенький, я тебе хочу объяснить на пальцах, что в большинстве задач вполне можно и нужно обходиться обычным байтовым массивом.Если это задачи уровня домашней работы -- то возможно. cooldeveloper2CopyTo появился только в WF 4.0, а как же быть FW 3.5 и ниже?Самому написать, очевидно. cooldeveloper2Докладываю по существу, SqlFileStream не реализует загрузку данных из потока, разработчики не позаботились. Что и требовалось доказать.Что в твоем понимании "загрузка данных из потока"? cooldeveloper2НахлобучЭто как, потоковая операция или байтовая? Или интовая, может быть? Зачем мне твои интовые операции, если я читаю файл с БД и отправляю его в Response клиенту? Или ты предлагаешь дополнительно его обернуть в MemoryStream и отдать через Response.OutputStream? Уволен без выплаты зарплаты.Повторю вопрос: это потоковая опеация или нет? А я предлагаю в цикле считывать буфер из SqlFileStream и записывать его в OutputStream. cooldeveloper2Если у тебя туго с мозгами, что поясню: байтовые операции - это операции с byte[], потоковые - с Stream. Так лучше? До тебя ни у кого вопросов по этому поводу не возникало. stream.CopyTo(anotherStream) -- это какая операция? cooldeveloper2Присаживайся, двойка. У меня есть свой поток Stream, я его хочу загнать в SqlFileStream. Так вот SqlFileStream не поддерживает загрузки данных из потока. Для FW < 4.0. Именно про это я тебе и писал.Начнем с того, что SqlFileStream в принципе появился только в 4.0. Покажи лучше, как он таки научился загружать данные из потока в .NET 4.0+ cooldeveloper2Садись, двойка. Ты предлагаешь читать файл из базы, создавать отдельный поток и отправлять его в OutputStream? Кхе..кхе.Я писал как я предлагаю. Но могу и повторить -- в цикле считывать буфер из SqlFileStream и записывать его в OutputStream. cooldeveloper2Зачем мне нужен поток, если я собираюсь писать пакет байт в БД?С точностью до наоборот -- в цикле читаем буфер из InputStream и пишем его в SqlFileStream. cooldeveloper2Ты головой тронулся? Еще раз смотри реализацию ZipMemory: 14453716 Какой нафик new ZipMemory(file, File.ReadAllBytes(file)) ??? Тебе бы пирожки печь, а не код писать. Нивапрос, Код: c# 1. 2. 3. 4. 5. Сути дела не меняет -- в памяти по-прежнему будет содержимое каждого файла из c:\windows\system32 плюс сам архив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:19 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропилушка, алё? Я всё ещё жду чанкинга для EF. Поторопись, родненький... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:19 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2AntonariyОтмазку галимей сложно представить :) Ну а что мне ещё предложить тому, кто читает жопой да ещё и с середины темы? :)Громкое заявление для того, кто жопой пишет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:21 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Изопропилушка, алё? Я всё ещё жду чанкинга для EF. Поторопись, родненький... без EF жизни нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:25 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучЕсли это задачи уровня домашней работы -- то возможно. А что, уровень "не домашней" работы - это код только с наличием Stream? Сходи в сад и повесели детишек. Нахлобучcooldeveloper2CopyTo появился только в WF 4.0, а как же быть FW 3.5 и ниже?Самому написать, очевидно. Ай, умничка - что и требовалось доказать. Точно так же и здесь, нужен именно Stream в моем классе, берешь и дописываешь реализацию (пара строк кода). Нахлобучcooldeveloper2Докладываю по существу, SqlFileStream не реализует загрузку данных из потока, разработчики не позаботились. Что и требовалось доказать.Что в твоем понимании "загрузка данных из потока"? Слушай, тебе и в жизни всё нужно разжевывать и класть в рот? Мы же уже всё обговорили выше и ты, вроде как, понял всё... Речь о [Файл] => [Stream] => [Load to SqlFileStream] => [БД] НахлобучЗачем мне твои интовые операции, если я читаю файл с БД и отправляю его в Response клиенту? Или ты предлагаешь дополнительно его обернуть в MemoryStream и отдать через Response.OutputStream? Уволен без выплаты зарплаты.Повторю вопрос: это потоковая опеация или нет? [/quot] Response.OutputStream - конечно потоковая. Теперь ты мне ответь на вопрос: зачем мне твои интовые операции, если я читаю файл с БД и отправляю его в Response клиенту? Или ты предлагаешь дополнительно его обернуть в MemoryStream и отдать через Response.OutputStream? НахлобучА я предлагаю в цикле считывать буфер из SqlFileStream и записывать его в OutputStream. Да ты ж мой хороший - а я предлагаю дописать еще один метод к моему классу, который работает с MemoryStream. Вопросы, пожелания? Нахлобучcooldeveloper2Если у тебя туго с мозгами, что поясню: байтовые операции - это операции с byte[], потоковые - с Stream. Так лучше? До тебя ни у кого вопросов по этому поводу не возникало. stream.CopyTo(anotherStream) -- это какая операция? Потоковая. НахлобучНачнем с того, что SqlFileStream в принципе появился только в 4.0. Покажи лучше, как он таки научился загружать данные из потока в .NET 4.0+ Опять двойка... Нахлобуч, так недолго и вылететь из школы. Не? http://msdn.microsoft.com/ru-ru/library/system.data.sqltypes.sqlfilestream.aspx Поддерживается в версиях: 4.5, 4, 3.5 с пакетом обновления 1 (SP1), 3.0 с пакетом обновления 2 (SP2), 2.0 с пакетом обновления 2 (SP2) Нахлобучcooldeveloper2Садись, двойка. Ты предлагаешь читать файл из базы, создавать отдельный поток и отправлять его в OutputStream? Кхе..кхе.Я писал как я предлагаю. Но могу и повторить -- в цикле считывать буфер из SqlFileStream и записывать его в OutputStream. Ты смешал мух и котлет. Тут речь о EF и чтении блоба (varbinary(max), к примеру). Чтение напрямую блоба в EF и L2S маппится прямо в массив байт. Имея честный массив байт, нахрена мне еще OutputStream задействовать? Ппц, ты трудный... Нахлобучcooldeveloper2Зачем мне нужен поток, если я собираюсь писать пакет байт в БД?С точностью до наоборот -- в цикле читаем буфер из InputStream и пишем его в SqlFileStream. Ужос. Причем тут SqlFileStream? Ты, вообще, понимаешь, о чем речь? Дискутируем о блобе + EF и FILESTREAM, это как бы 2 темы. 1. Я привожу пример, что имея данные в блобе и работая с EF, никакие потоки нафик не нужны. 2. FILESTREAM. Я привожу пример с файлстримом в доказательство того, что методы работы иногда сводятся только к байтовым операциям. В доказательство я привел именно этот класс, разработчики которого забили на методы чтения с потока. Поэтому приходится пилить свои костыли (FW < 4.0) Ау, ты в космосе, что ли? НахлобучНивапрос, Код: c# 1. 2. 3. 4. 5. Сути дела не меняет -- в памяти по-прежнему будет содержимое каждого файла из c:\windows\system32 плюс сам архив. Ты с дубу рухнул? Что это за гавнокод? Уволен без выплаты зарплаты! Так надо: Код: c# 1. Нахлобуч, ты меня пугаешь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:35 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Antonariycooldeveloper2пропущено... Ну а что мне ещё предложить тому, кто читает жопой да ещё и с середины темы? :)Громкое заявление для того, кто жопой пишет Громкое заявление для читающих ею ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:36 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропилcooldeveloper2Изопропилушка, алё? Я всё ещё жду чанкинга для EF. Поторопись, родненький... без EF жизни нет? Не вопрос, возьми классический ADO.NET. Ты блоб читаешь в поток? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:40 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Изопропилпропущено... без EF жизни нет? Не вопрос, возьми классический ADO.NET. Ты блоб читаешь в поток? Ты конечно можешь сам принудительно читать блоб ридером через SqlDataReader.GetStream, но нафига это нужно? Речь о адаптерах и ридерах, которые вмапливают данные в DataTable. Какой стрим? Зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:43 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Короче, текущая тема - самая первая в топе на главной странице. Так что поаккуратнее выражайтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:44 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2блоб ридером через SqlDataReader.GetStream, но нафига это нужно? передать поток потребителю имеющему на входе поток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:48 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2cooldeveloper2пропущено... Не вопрос, возьми классический ADO.NET. Ты блоб читаешь в поток? Ты конечно можешь сам принудительно читать блоб ридером через SqlDataReader.GetStream, но нафига это нужно? Речь о адаптерах и ридерах, которые вмапливают данные в DataTable. Какой стрим? Зачем? Это лишено всякого здравого смысла, т.к. нужно читать сразу в массив байт. Если блоб такой большой, что его напряжно загружать сразу в память, возникает вопрос, какого хрена он, вообще, у тебя в блобе сидит? Ведь по рекомендациям MS в блобах оптимальнее всего хранить файлы до 256Кб. Но даже самый экстремум, это 256Кб - 1Мб, где фрагментация будет более менее приемлема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:48 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропилcooldeveloper2блоб ридером через SqlDataReader.GetStream, но нафига это нужно? передать поток потребителю имеющему на входе поток. Пусть потребитель потребляет и массив байт. Не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:49 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Пусть потребитель потребляет и массив байт. Не? и так каждый в цепочке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:50 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропилcooldeveloper2Пусть потребитель потребляет и массив байт. Не? и так каждый в цепочке? Генерируешь условия на лету? Цепочки уже появились. Смотри, memory leak не отхвати в своих цепочках со стримами. Чанкинг будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 15:53 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2НахлобучЧто в твоем понимании "загрузка данных из потока"? Слушай, тебе и в жизни всё нужно разжевывать и класть в рот? Мы же уже всё обговорили выше и ты, вроде как, понял всё... Речь о [Файл] => [Stream] => [Load to SqlFileStream] => [БД]Ты без стрелочек объясни. Как должна быть реализована операция "загрузить данные из потока"? cooldeveloper2Нахлобуч Код: c# 1. 2. 3. 4. 5. 6. 7. 8. Повторю вопрос: это потоковая опеация или нет? Response.OutputStream - конечно потоковая.Ты на что отвечаешь? И как может быть название свойства (Response.OutputStream) операцией? Еще раз: приведенный метод -- он реализует потоковую операцию копирования? cooldeveloper2Теперь ты мне ответь на вопрос: зачем мне твои интовые операции, если я читаю файл с БД и отправляю его в Response клиенту? Или ты предлагаешь дополнительно его обернуть в MemoryStream и отдать через Response.OutputStream?Повторяю: предлагаю в цикле считывать буфер из SqlFileStream и записывать его в OutputStream. Ничего ничем оборачивать не надо, оставь свои домыслы при себе. cooldeveloper2Нахлобучcooldeveloper2Если у тебя туго с мозгами, что поясню: байтовые операции - это операции с byte[], потоковые - с Stream. Так лучше? До тебя ни у кого вопросов по этому поводу не возникало. stream.CopyTo(anotherStream) -- это какая операция? Потоковая.Отлично. Запомним это. cooldeveloper2НахлобучНачнем с того, что SqlFileStream в принципе появился только в 4.0. Покажи лучше, как он таки научился загружать данные из потока в .NET 4.0+ Опять двойка... Нахлобуч, так недолго и вылететь из школы. Не? http://msdn.microsoft.com/ru-ru/library/system.data.sqltypes.sqlfilestream.aspx Поддерживается в версиях: 4.5, 4, 3.5 с пакетом обновления 1 (SP1), 3.0 с пакетом обновления 2 (SP2), 2.0 с пакетом обновления 2 (SP2)Ок, ошибся с версией фреймворка. И все же -- каким образом SqlFileStream научился загружать данные из потока в .NET 4.0? cooldeveloper2Ты смешал мух и котлет. Тут речь о EF и чтении блоба (varbinary(max), к примеру). Чтение напрямую блоба в EF и L2S маппится прямо в массив байт. Имея честный массив байт, нахрена мне еще OutputStream задействовать? Ппц, ты трудный...Я про EF ни разу не упоминал даже. cooldeveloper2НахлобучС точностью до наоборот -- в цикле читаем буфер из InputStream и пишем его в SqlFileStream. Ужос. Причем тут SqlFileStream? Ты, вообще, понимаешь, о чем речь? Дискутируем о блобе + EF и FILESTREAM, это как бы 2 темы. 1. Я привожу пример, что имея данные в блобе и работая с EF, никакие потоки нафик не нужны.[/quot]Это не ко мне, повторяю. Я про EF с тобой не говорю. Плюс ты снова не в кассу. cooldeveloper2Ау, ты в космосе, что ли? НахлобучНивапрос, Код: c# 1. 2. 3. 4. 5. Сути дела не меняет -- в памяти по-прежнему будет содержимое каждого файла из c:\windows\system32 плюс сам архив. Ты с дубу рухнул? Что это за гавнокод? Уволен без выплаты зарплаты! Так надо: Код: c# 1. Нахлобуч, ты меня пугаешь... То есть ты хочешь сказать, что вот этот код скомпилируется? Код: c# 1. Нет, МСУ, он не скомпилируется. Посему повторяю свое утверждение -- в памяти по-прежнему будет содержимое каждого файла из c:\windows\system32 плюс сам архив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 16:02 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Нахлобучcooldeveloper2[Файл] => [Stream] => [Load to SqlFileStream] => [БД]Ты без стрелочек объясни. Как должна быть реализована операция "загрузить данные из потока"? Слушай, я уже не знаю, как тебе и что объяснять. Сначала начал человеческим языком, потом стрелочками, теперь уж не знаю как. 1. Ну смотри, есть физический файл. 2. Ты создаешь поток, который ссылается только на его дескриптор (File.OpenRead). 3. Ремарка: надо загнать файл в FILESTREAM (это тип данных такой на сиквел сервере). 4. Реализация SqlFileStream не поддерживает использование FileStream = File.OpenRead напрямую. Да, в FW 4.0 появился у Stream новый метод CopyTo, который унаследовался и в SqlFileStream. Можно для задач с новым FW обойтись тупым CopyTo из FileStream. Но для FW < 4.0 приходится писать свой дополнительный код. О чем и речь. Разрабы не позаботились о том, чтобы пользователи класса напрямую с потока загружали в FILESTREAM сиквела данные. Только с массива байт (Read / Write). Мысль понятна? НахлобучТы на что отвечаешь? На твой вопрос. НахлобучИ как может быть название свойства (Response.OutputStream) операцией? У тебя проблемы с памятью? Вот тут ты меня спрашивал: 14454595 ...Нахлобучcooldeveloper2Зачем мне твои интовые операции, если я читаю файл с БД и отправляю его в Response клиенту? Повторю вопрос: это потоковая опеация или нет? Причем тут "название свойства" Response.OutputStream? В вопросе четко говорится об операции "читать" и "отправлять". У меня складывается ощущение, что тебе больше нечего сказать и ты пишешь какую-то муть, лишь бы только всех запутать. Это так? Если это так, то я не вижу смысл дальнейшего обсуждения. Если есть что сказать по делу, с радостью послушаю. НахлобучЕще раз: приведенный метод -- он реализует потоковую операцию копирования? Response.OutputStream - это свойство, а не метод. Ты уж определись. НахлобучПовторяю: предлагаю в цикле считывать буфер из SqlFileStream и записывать его в OutputStream. Ничего ничем оборачивать не надо, оставь свои домыслы при себе. Код в студию. Вот вариант SQL FILESTREAM бы без каких-либо циклов и прочей мути. Через родной Read(byte[]). Код: c# 1. 2. 3. 4. 5. 6. 7. А потом тупо Response.BinaryWrite. Всё. НахлобучОк, ошибся с версией фреймворка. И все же -- каким образом SqlFileStream научился загружать данные из потока в .NET 4.0? Ты же сам ответил на этот вопрос тут: 14454271 Али забыл уже? Напомню, ты правильно ответил: fileStream.CopyTo(sqlFileStream) Но этот вариант для 4.0 и выше. Для остальных случаев нужно писать педали. Нахлобучcooldeveloper2Ты смешал мух и котлет. Тут речь о EF и чтении блоба (varbinary(max), к примеру). Чтение напрямую блоба в EF и L2S маппится прямо в массив байт. Имея честный массив байт, нахрена мне еще OutputStream задействовать? Ппц, ты трудный...Я про EF ни разу не упоминал даже. Я упоминал. И приводил примеры респонза именно для блобов, а не для FILESTREAM. А ты взял и смешал всё в кучу. Не хорошо. НахлобучЭто не ко мне, повторяю. Я про EF с тобой не говорю. Плюс ты снова не в кассу. Смотри выше. Если про EF не говоришь, то и не нужно брать мои примеры про Response, которые касаются именно блобов. А то выдрал из контекста и сидишь умничаешь. НахлобучТо есть ты хочешь сказать, что вот этот код скомпилируется? Ты понял, что обосрался и решил придраться? Вот так скомпилируется: Код: c# 1. 2. 3. 4. 5. НахлобучНет, МСУ, он не скомпилируется. Посему повторяю свое утверждение -- в памяти по-прежнему будет содержимое каждого файла из c:\windows\system32 плюс сам архив. Нет, Нахлобуч, он скомпилируется. И ты это знаешь. Посему, никакими загрузками в памяти тут и не пахнет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 16:41 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper24. Реализация SqlFileStream не поддерживает использование FileStream = File.OpenRead напрямую.Чего-чего? Что значит "Реализация SqlFileStream не поддерживает использование FileStream = File.OpenRead напрямую"? В общем, я понял. В терминологии ты не силен, в реальном использовании, судя по всему, тоже. cooldeveloper2НахлобучПовторяю: предлагаю в цикле считывать буфер из SqlFileStream и записывать его в OutputStream. Ничего ничем оборачивать не надо, оставь свои домыслы при себе. Код в студию. Да пожалуйста, можешь даже в рецепты добавить. Код: c# 1. 2. 3. 4. 5. cooldeveloper2Я упоминал. И приводил примеры респонза именно для блобов, а не для FILESTREAM. А ты взял и смешал всё в кучу. Не хорошо.Я про EF не упоминал, про него с другими беседуй. cooldeveloper2Смотри выше. Если про EF не говоришь, то и не нужно брать мои примеры про Response, которые касаются именно блобов. А то выдрал из контекста и сидишь умничаешь.Я про EF не упоминал. Если отвечаешь мне -- от и отвечай на мои вопросы, а не занимайся фигурной резьбой по чужим цитатам. Напомню ( 14454451 ): cooldeveloper2Нахлобучпропущено... Неверно, есть HttpResponse.OutputStream. Садись, двойка. Ты предлагаешь читать файл из базы, создавать отдельный поток и отправлять его в OutputStream? Кхе..кхе. НахлобучНеверно, есть HttpPostedFile.InputStream или вообще HttpRequest.InputStream Зачем мне нужен поток, если я собираюсь писать пакет байт в БД? cooldeveloper2НахлобучТо есть ты хочешь сказать, что вот этот код скомпилируется? Ты понял, что обосрался и решил придраться? Вот так скомпилируется: Код: c# 1. 2. 3. 4. 5. Во какой ты джигит. Молодец. Но напомню -- тут ( 14453716 ) у тебя MemoryStream. Даже если закрыть глаза на твое изменение условий на лету, то опять же -- у тебя останется куча незакрытых потоков и таки архив целиком в памяти. Опять незадача вышла. Что делать будешь? Снова на ходу код править? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 17:15 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучЧего-чего? Что значит "Реализация SqlFileStream не поддерживает использование FileStream = File.OpenRead напрямую"? Только промежуточное копирование FileStream в SqlFileStream. НахлобучВ общем, я понял. В терминологии ты не силен, в реальном использовании, судя по всему, тоже. Всё намного хуже - ты облажался несколько раз и пытаешься соскачить в "терминологию", в "свойство" Response.OutputStream и в прочие не имеющие к делу определения. Забавно. НахлобучДа пожалуйста, можешь даже в рецепты добавить. Умничка. А я тебе про что битый час твержу? Нахлобучcooldeveloper2Я упоминал. И приводил примеры респонза именно для блобов, а не для FILESTREAM. А ты взял и смешал всё в кучу. Не хорошо.Я про EF не упоминал, про него с другими беседуй. Я ж тебе уже писал, тогда не влазь в этот разговор с "другим о EF. Там речь шла о блобах и респонзе, ты взял и вырвал респонз из контекста и прикрутил ко второй теме про FILESTREAM. Пришлось тебе примеры показывать и для FILESTREAM. Сам всех запутал, а виноваты я и "другой". Тем не менее, давай поговорим об ORM. Не сцать. Например, EF и L2S маппят блобы в массив байт. Никаких потоков. Что делать в этом случае? Или разработчики EF и L2S му**ки - должны были тебе выбросить стримовый сосок, через который ты дергал бы блобы? Горю желанием послушать твой высер на эту тему, любитель потоковой обработки данных. НахлобучЯ про EF не упоминал. Если отвечаешь мне -- от и отвечай на мои вопросы, а не занимайся фигурной резьбой по чужим цитатам. Ты про EF не упоминал, но вырвал из его контекста спич про респонз. Как понимать? НахлобучВо какой ты джигит. Молодец. Но напомню -- тут ( 14453716 ) у тебя MemoryStream. Ты ж мой хороший, неужели ты не понял с ходу, когда я про File.OpenRead написал? Код: c# 1. Ведь даже студент бы понял, что речь идет о чистом потоке, без загрузки его в память. Но нет, ты придрался к банальному несоответствию Stream <=> FileStream и начал дальше слюни пускать, мол я не я, жопа не моя. Не стыдно? Ведь все поняли, о чем речь идет. Особенно когда ты жег напалном про: Код: c# 1. Это ж просто жесть какая-то... НахлобучДаже если закрыть глаза на твое изменение условий на лету Какие такие изменения на лету? Ты о той дурке, которую сам включил? Нахлобучто опять же -- у тебя останется куча незакрытых потоков и таки архив целиком в памяти. Опять незадача вышла. Что делать будешь? Снова на ходу код править? Кто-то мешает их диспоузить? Ты хотел работы с потоками - держи: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. На входе потоки - на выходе поток. Как ты будешь их освобождать - это твои проблемы. Не хочешь заморачиваться с освобождением ресурсов - кури массив байтов, просто и вкусно. Хочешь более тонкого подхода с потоками - бери стримы, только за memory leak теперь сам следи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 17:41 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Забавно ты постоянно увертываешься от ответа и перескакиваешь с темы на тему. Начал с невразумительного пассажа ( 14452965 ) о "мой велосипед работает только с потоками (через байтовый массив, без файлового оверхеда)." и все заверте... cooldeveloper2НахлобучЧего-чего? Что значит "Реализация SqlFileStream не поддерживает использование FileStream = File.OpenRead напрямую"? Только промежуточное копирование FileStream в SqlFileStream.Не многим лучше. Приведи мысли в порядок и напиши нормальным языком, что ты тут имел в виду. cooldeveloper2Я ж тебе уже писал, тогда не влазь в этот разговор с "другим о EF. Там речь шла о блобах и респонзе, ты взял и вырвал респонз из контекста и прикрутил ко второй теме про FILESTREAM. Пришлось тебе примеры показывать и для FILESTREAM. Сам всех запутал, а виноваты я и "другой".Покажи мне место, где я влез в твой разговор с "другими о EF". cooldeveloper2Тем не менее, давай поговорим об ORM. Не сцать.С другими об этом говори. И истерик не разводи, держи себя в руках, будь добр. cooldeveloper2Ты про EF не упоминал, но вырвал из его контекста спич про респонз. Как понимать?Дай ссылку на сообщения, где, что и откуда я вырвал. cooldeveloper2Ты ж мой хороший, неужели ты не понял с ходу, когда я про File.OpenRead написал?О чем еще я тут должен догадаться? Ты дал пример кода, в котором был MemoryStream, а потом на ходу -- "ой, а ты не догадался?" -- переиграл все в Stream и снова в белом. Здорово, чоужтам. cooldeveloper2Особенно когда ты жег напалном про: Код: c# 1. Это ж просто жесть какая-то... Все в строгом соответствии с твоей реализацией ZipMemory ( 14453716 ), которую ты с таким апломбом предоставил, и его public MemoryStream Body { get; set; }. cooldeveloper2НахлобучДаже если закрыть глаза на твое изменение условий на лету Какие такие изменения на лету? Ты о той дурке, которую сам включил?А ты клёвый. 14455264 -- вот ровно тут ты сменил MemoryStream на Stream. Или не сменил? cooldeveloper2Кто-то мешает их диспоузить? Ты хотел работы с потоками - держи:О using(memory1.Body) я тоже должен был догадаться? Ты изрыгаешь какие-то невразумительные куски кода, я тебе указываю на проблемные места и ты лихо прикрываешься "нучожтынедогадался". Хороший подход. Но я отвлекся. Ответь, пожалуйста, на следующие вопросы, не увиливай. И отвечай не фонтаном бессвязных слов, а так, чтобы тебя можно было однозначно понять. * Как быть с большими файлами тут: 14453329 ? * Где будет сформирован архив вот тут: 14453644 ? * Реализация Copy отсюда ( 14454271 ) -- потоковая операция? И в качестве факультатива -- оченно хотелось бы посмотреть на два метода, которые ты упомянул тут ( 14453664 ; " Если нужна адаптация под потоковый ввод вывод, класс дополняется еще двумя методами" ). Большие у меня сомнения, что ты понимаешь, как работать с потоками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 18:35 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
винрар и перенаправление консольных потоков =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 19:55 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
hVosttвинрар и перенаправление консольных потоков =) издеваешься? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 21:04 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропил, почему же? винрар лучше абсолютно при любых раскладах. с любой точки и любого аспекта зрения. я имею в виду для сжатия, а не для распаковки zip можно 7зип, но винрар ощутимо быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 22:25 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
hVostt, вопрос не в качестве 7зип и винрар, а в осмысленности использования под IIS внешних процессов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 22:34 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропил, не вижу проблемы. кроме той, что на серваке может не быть никакого винрара :) ну и лицензии, опять же, может не быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2013, 23:14 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Итак, Нахлобуч, продолжаю тебя вразумлять. Приготовься, а то ты какой-то расхлябанный, что ли. НахлобучЗабавно ты постоянно увертываешься от ответа и перескакиваешь с темы на тему. Начал с невразумительного пассажа ( 14452965 ) о "мой велосипед работает только с потоками (через байтовый массив, без файлового оверхеда)." и все заверте... 1. Я увертываюсь от ответа? Ты спятил, я четко отвечаю на твои разрозненные вопросы. То сначала ты искаверкал вопрос по поводу свойства OutputStream, то начал писать про какие-то методы. Соберись и задай вопрос по существу, а то виляешь по сторонам, а толку никакого. 2. По поводу пассажа. Не вижу никаких противоречий, ибо мой лисапед работает только с потоками (реализация), а через байтовый массив (без файлового оверхеда) он предоставляет вход и выход. Ситуация выглядит печально, что тебе об этом еще и нужно писать, т.к. предоставленный код говорит сам за себя. 3. Признайся, ты начал свой вброс вот этим безумным постом 14452467 про File.ReadAllBytes, не разобравшись в ситуации. Все прекрасно понимают, что File.ReadAllBytes тут вообще ни у кассы, ибо это просто демо пример для инициализации входа массивом байт. Не более того. Потом ты понял, что сел в лужу, и ляпнул вот это 14452881 мол "всё прогрессивное человечество использует потоковый ввод-вывод". Что за бред? 4. Человечество идет по легкому пути и использует байтовые массивы, т.к. это удобно и не требует высвобождения памяти. Для более редких случаев, когда требуется читать поток по кускам, возможно применение и стримов. НахлобучНе многим лучше. Приведи мысли в порядок и напиши нормальным языком, что ты тут имел в виду. Насколько я понимаю ситуацию, как раз с мыслями не порядок у тебя, а не у меня. Я тебе уже 10 раз написал, что я имею ввиду. Пора выйти из сумрака, мне надоело тебе разжевывать очевидные вещи. Нахлобучcooldeveloper2Я ж тебе уже писал, тогда не влазь в этот разговор с "другим о EF. Там речь шла о блобах и респонзе, ты взял и вырвал респонз из контекста и прикрутил ко второй теме про FILESTREAM. Пришлось тебе примеры показывать и для FILESTREAM. Сам всех запутал, а виноваты я и "другой".Покажи мне место, где я влез в твой разговор с "другими о EF". 1. Вот тут 14453404 я написал про честный массив байтов при работе с БД. 2. И тут же уточнил про EF 14453594 + написал, что для 99.9% задач (особенно для EF и L2S) требуется обязательно помещать такой объект в массив. 3. А вот тут 14453595 ты процитировал моё сообщение про БД. И дальше перевернул всё с ног на голову. 4. Подчеркиваю, эта тема касается блобов и маппинга на свои классы (в т.ч. через ORM). О FILESTREAM тут речи не идет. Нахлобучcooldeveloper2Тем не менее, давай поговорим об ORM. Не сцать.С другими об этом говори. И истерик не разводи, держи себя в руках, будь добр. Я в руках, держусь и здравствую. Таки ответ будет или сдулся? Нахлобучcooldeveloper2Ты про EF не упоминал, но вырвал из его контекста спич про респонз. Как понимать?Дай ссылку на сообщения, где, что и откуда я вырвал. Выше. Нахлобучcooldeveloper2Ты ж мой хороший, неужели ты не понял с ходу, когда я про File.OpenRead написал?О чем еще я тут должен догадаться? Ты дал пример кода, в котором был MemoryStream, а потом на ходу -- "ой, а ты не догадался?" -- переиграл все в Stream и снова в белом. Здорово, чоужтам. Ты должен был догадаться о следующем (и догадался, просто в силу своей упертости не желаешь признавать своего просада): 1. Ты в своем гавнокоде сначала считываешь всё в память, а потом массив байт оборачиваешь в стрим 2. Я в свое коде показываю, что не нужно ничего предварительно загружать в память, нужно сразу инициализировать стрим с дескриптором на файл 3. Ты прикидываешься бревном и начинаешь вещать о несправедливости мира и о том, что FileStream не коррелирует с MemoryStream 4. Я тебе пишу про непринципиальность сего и изменяю в ZipMemory свойство Body на универсальный тип Stream, чтоб успокоить твоё негодование 5. Ты прикидываешься бревном и опять начинаешь грузить меня своими вбросами о косячности кастинга FileStream и MemoryStream 6. Доколе это будет продолжаться? Зри рационально в зерно, а не ковыряйся в шелухе. НахлобучА ты клёвый. 14455264 -- вот ровно тут ты сменил MemoryStream на Stream. Или не сменил? Выше я тебе подробно ответил на эту тему. Можешь продолжать дальше включать дурака, тебе идёт. Нахлобучcooldeveloper2Кто-то мешает их диспоузить? Ты хотел работы с потоками - держи:О using(memory1.Body) я тоже должен был догадаться? Ты изрыгаешь какие-то невразумительные куски кода, я тебе указываю на проблемные места и ты лихо прикрываешься "нучожтынедогадался". Хороший подход. А ты забавен. Сначала верещишь о том, что дайте мне стримы. А теперь, оказывается, ты не догадываешься, что их диспоузить надо? Аплодисменты. Я вообще не должен в реализации со стримами заботиться о том, что и как ты там собираешься диспоузить - я тебе прокидываю стримы, ты с ними работаешь. НахлобучНо я отвлекся. Как обычно. Ничего удивительного. НахлобучОтветь, пожалуйста, на следующие вопросы, не увиливай. И отвечай не фонтаном бессвязных слов, а так, чтобы тебя можно было однозначно понять. Вообще-то, я то и дело отвечаю на твои невразумительные вопросы и не увиливаю. Однозначно и безповоротно. Нахлобуч* Как быть с большими файлами тут: 14453329 ? * Где будет сформирован архив вот тут: 14453644 ? * Реализация Copy отсюда ( 14454271 ) -- потоковая операция? 1. Ответил тут 14453562 2. В MemoryStream, это очевидно даже из сигнатуры метода. 3. Ты повторяешься. Ответил тут 14454749 . На что ты ответил тут 14455016 "Отлично. Запомним это" Нахлобуч, у тебя проблемы с памятью? НахлобучИ в качестве факультатива -- оченно хотелось бы посмотреть на два метода, которые ты упомянул тут ( 14453664 ; " Если нужна адаптация под потоковый ввод вывод, класс дополняется еще двумя методами" ). Большие у меня сомнения, что ты понимаешь, как работать с потоками. Не вопрос, вот первый (главный). Второй по аналогии тебе на домашнее задание. Если осилишь, конечно. Т.к. с таким багажом "знаний" тебе придется не легко... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 09:54 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
hVosttИзопропил, не вижу проблемы. кроме той, что на серваке может не быть никакого винрара :) ну и лицензии, опять же, может не быть. Тебе всё правильно говорят, винрар на сервере - плохая практика, это тебе любой сисадмин скажет. Но самое большое зло - это в веб приложении запускать дополнительные процессы. Особенно, если дело касается высоконагруженных серверов приложений. Правильным выходом будет работа с архивом в памяти и только в памяти (массив байт или стрим). Это прописные истыины, о которых даже говорить как-то стыдно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 10:52 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
ShSergecooldeveloper2пропущено... А рар - это не винрар? :) Это бесплатная штука, которая работает из-под коммандной строки. Это таки винрар. И бесплатная эта штука только для создания архива. Вот тут рецептик валяется: http://codearticles.ru/articles/1106 Но самое зло такого подхода заключается в дополнительном процессе на реквест (для серверных приложений). Жирновато будет. За такие действия на сервере принято расстреливать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 11:02 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Раз уж ты начал про говнокод и скатился к оскорблениям, то я вправе ответить тем же. cooldeveloper21. Я увертываюсь от ответа? Ты спятил, я четко отвечаю на твои разрозненные вопросы. То сначала ты искаверкал вопрос по поводу свойства OutputStream, то начал писать про какие-то методы. Соберись и задай вопрос по существу, а то виляешь по сторонам, а толку никакогоВ то время, как я пытаюсь поговорить с тобой только про потоковый ввод-вывод, ты уже успел помянуть про БД, FILESTREAM, SqlFileStream, блобы, респонзы клиентов, аплоад файлов и снятие данных с устройств. И не притворяйся, что ты не понимаешь, что это уход от ответа и подмена предмета. Я всеми силами пытаюсь вернуть тебя к первоначальной теме дискуссии, но ты изо всех сил увиливаешь. Внимание, вопрос по существу: ты осознаешь, что весь код, который ты тут привел -- говно и что либо при любых значительных объемах данных он будет валить систему по OutOfMemoryException либо будет протекать (leak) изо всех сил? cooldeveloper22. По поводу пассажа. Не вижу никаких противоречий, ибо мой лисапед работает только с потоками (реализация), а через байтовый массив (без файлового оверхеда) он предоставляет вход и выход. Ситуация выглядит печально, что тебе об этом еще и нужно писать, т.к. предоставленный код говорит сам за себя.Во-первых, когда слышишь от инженера (я надеюсь, ты себя таковым считаешь) словосочетание "файловый оверхед" -- это многое говорит о его квалификации. Во-вторых, твой "рецепт" внутри использует потоки просто потому, что разработчки из Microsoft далеко не дураки и в публичном API предоставили только возможность записи и чтения в поток ( PackagePart.GetStream ). cooldeveloper23. Признайся, ты начал свой вброс вот этим безумным постом 14452467 про File.ReadAllBytes, не разобравшись в ситуации. Все прекрасно понимают, что File.ReadAllBytes тут вообще ни у кассы, ибо это просто демо пример для инициализации входа массивом байт.Прекрасно, еще одно место, где я должен был о чем-то догадаться. Тогда так: как же ты сам не понял, что это был не вброс, а просто иллюстрация ущербности твоего подхода загрузки всех архивируемых данных в память? Это же всем видно, непонятно, как же ты не догадался. cooldeveloper2Не более того. Потом ты понял, что сел в лужу, и ляпнул вот это 14452881 мол "всё прогрессивное человечество использует потоковый ввод-вывод". Что за бред?Смотри комментарий про "твой код -- говно". cooldeveloper24. Человечество идет по легкому пути и использует байтовые массивы, т.к. это удобно и не требует высвобождения памяти. Для более редких случаев, когда требуется читать поток по кускам, возможно применение и стримов.Смотри комментарий про "твой код -- говно". Ты решаешь неимоверно узкую задачу и с жуткой упертостью отстаиваешь неверную позицию, что это -- зе бест. cooldeveloper21. Вот тут 14453404 я написал про честный массив байтов при работе с БД. 2. И тут же уточнил про EF 14453594 + написал, что для 99.9% задач (особенно для EF и L2S) требуется обязательно помещать такой объект в массив. 3. А вот тут 14453595 ты процитировал моё сообщение про БД. И дальше перевернул всё с ног на голову.Уй ты лапочка, ну почитай сам уже. Вот тут 14453404 ты говоришь со мной, вот тут 14453594 -- с Изопропилом. Повторяю в последний раз -- я про EF в частности и про ORM в целом с тобой не говорил и не собираюсь. cooldeveloper2Ты должен был догадаться о следующем (и догадался, просто в силу своей упертости не желаешь признавать своего просада): 1. Ты в своем гавнокоде сначала считываешь всё в память, а потом массив байт оборачиваешь в стримГовно -- это твой код, милчеловек. Я же в своем коде основывался на том определении класса ZipMemory, что ты предоставил. Не надо теперь хлопать глазками как девочка и рассказывать, что ты совсем не то имел в виду. cooldeveloper22. Я в свое коде показываю, что не нужно ничего предварительно загружать в память, нужно сразу инициализировать стрим с дескриптором на файлУже устал говорить. Дискуссия (срач, точнее) с тобой напоминает игру в шахматы с голубем. cooldeveloper24. Я тебе пишу про непринципиальность сего и изменяю в ZipMemory свойство Body на универсальный тип Stream, чтоб успокоить твоё негодованиеХорошая непринципиальность, что уж. cooldeveloper25. Ты прикидываешься бревном и опять начинаешь грузить меня своими вбросами о косячности кастинга FileStream и MemoryStreamЧто такое "кастинг FileStream и MemoryStream"? Ты инженер или нет? Выражайся технически правильными терминами. cooldeveloper2А ты забавен. Сначала верещишь о том, что дайте мне стримы. А теперь, оказывается, ты не догадываешься, что их диспоузить надо? Аплодисменты.Сядь, остынь, подумай. Адекватный программист мог хотя бы реализовать в ZipMemory интерфейс IDisposable. Ты же не сделал и этого и снова прикрываешься "догадалками". Взялся писать код -- пиши нормально, а не в своем стиле. cooldeveloper2Я вообще не должен в реализации со стримами заботиться о том, что и как ты там собираешься диспоузить - я тебе прокидываю стримы, ты с ними работаешь.Снова какая-то фраза от грузчика, а не от программиста. cooldeveloper2Нахлобуч* Как быть с большими файлами тут: * Где будет сформирован архив вот тут: 14453644 ? 14453329 ?1. Ответил тут 14453562 2. В MemoryStream, это очевидно даже из сигнатуры метода. Ты осознаешь, что у тебя весь архив будет лежать в буфере в памяти? cooldeveloper2Не вопрос, вот первый (главный). Второй по аналогии тебе на домашнее задание. Если осилишь, конечно. Т.к. с таким багажом "знаний" тебе придется не легко... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Ай, опять ты сел в лужу, пупсик -- опять ресурсы текут, опять все в памяти держишь... Ну да ничего, тебе не впервой. А казалось бы большой мальчик уже. На, мотай на памперс: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 13:34 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2Тебе всё правильно говорят, винрар на сервере - плохая практика, это тебе любой сисадмин скажет. Но самое большое зло - это в веб приложении запускать дополнительные процессы. Особенно, если дело касается высоконагруженных серверов приложений. Правильным выходом будет работа с архивом в памяти и только в памяти (массив байт или стрим). Это прописные истыины, о которых даже говорить как-то стыдно. Я посмотрю, как ты в памяти со своим стримом обеспечишь следующие штуковины: инкрементальное (+версионное) обновление архива контроль целостности непрерывное сжатие групп файлов высочайший уровень сжатия текстовых данных электронная цифровая подпись информация для восстановления разбитие на тома ... да и многое другое консольный винрар на столько мощнейшая штука, познать всю мощь которую это целое дао а то, что ты там не умеешь запущенными процессами в памяти рулить, запускать их в одтельном потоке, скармливать данные, управлять степенью загрузки вычислистельных ресурсов, это только твои личные проблемы если уж зарекся что-то называть «плохой практикой» будь добр изложить конкретные критичные/нерешаемые проблемы, иначе смысл этого высказывания — лишь пыль, которую пускаешь людям в глаза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 14:03 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
hVosttпознать всю мощь которую это целое дао в анналы занести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 14:17 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
Изопропил, :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 14:23 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
НахлобучРаз уж ты начал про говнокод и скатился к оскорблениям, то я вправе ответить тем же. Ух какие мы опасные. Ну что ж, вперёд и с песней. НахлобучВ то время, как я пытаюсь поговорить с тобой только про потоковый ввод-вывод, ты уже успел помянуть про БД, FILESTREAM, SqlFileStream, блобы, респонзы клиентов, аплоад файлов и снятие данных с устройств. И не притворяйся, что ты не понимаешь, что это уход от ответа и подмена предмета. Я всеми силами пытаюсь вернуть тебя к первоначальной теме дискуссии, но ты изо всех сил увиливаешь. Ты не поверишь, все ужасы, что ты тут с таким напором наперечислял, у меня уместились в одном маленьком посте: 14454086 . Какая тут может быть подмена? Я всеми силами пытаюсь объяснить, что тебя заносит на ровном месте куда-то в обочину. Но ты продолжает писать какую-то жуть. Занятно. НахлобучВнимание, вопрос по существу: ты осознаешь, что весь код, который ты тут привел -- говно и что либо при любых значительных объемах данных он будет валить систему по OutOfMemoryException либо будет протекать (leak) изо всех сил? Внимание, ответ по существу. 1. Я не осознаю, что "весь код, который я тут привел -- говно и что либо при любых значительных объемах данных он будет валить систему по OutOfMemoryException либо будет протекать (leak) изо всех сил" . 2. Зато я осознаю, что весь мой код - корректный, отлаженный и стабильный. Замечательно ведет себя на больших нагрузках сервера приложения. Честно создает архивы и их распаковывает. Никакик учетек памяти в нём не было и нет. 3. Так же я осознаю, что твой код, который ты тут писал с обворачиванием прочитанных байт в стрим - безумное студенческое гавно, которое только видывал свет. 4. Так же я осознаю, что первый твой пост с File.ReadAllBytes - бред сивой кобылы. Очень сивой. 5. Такой ответ тебя устроит? НахлобучВо-первых, когда слышишь от инженера (я надеюсь, ты себя таковым считаешь) словосочетание "файловый оверхед" -- это многое говорит о его квалификации. Ты просто в очередной раз демонстрируешь своё незнание предметики. "Инженер". Ну это простительно для вчерашних студентов, которые только только выпустились из ВУЗа. http://en.wikipedia.org/wiki/Overhead Overhead (business), the ongoing operating costs of running a business Engineering overhead, ancillary design features required by a component of a device Overhead (computing), ancillary computation required by an algorithm or program Overhead information, for telecommunication systems File system overhead, storage or other consideration required by a file system that is not directly related to data. Any physical object situated, or action occurring above: Overhead wire, for power transmission Overhead cable, for signal transmission Overhead projector, a display system Overhead cam, a mechanical device Overhead join, in air traffic control Overhead (band), a Finnish progressive rock band НахлобучВо-вторых, твой "рецепт" внутри использует потоки просто потому, что разработчки из Microsoft далеко не дураки и в публичном API предоставили только возможность записи и чтения в поток ( PackagePart.GetStream ). 1. В моём "рецепте" используетя этот метод . К чему твой вброс? Лишь бы что-то пукнуть? Понятно. 2. Для тех, кто забарикадировался в танке, я повторяю: если нужен стрим - используй его (доработать класс), если нужен байтовый массив - используй его (реализация сделана). 3. Но говорить, что весь современный мир использует потоковый ввод вывод - это глупо, безапеляционно и феерично. Только полный идиот может заявлять такое. Согласен? Нахлобучcooldeveloper23. Признайся, ты начал свой вброс вот этим безумным постом 14452467 про File.ReadAllBytes, не разобравшись в ситуации. Все прекрасно понимают, что File.ReadAllBytes тут вообще ни у кассы, ибо это просто демо пример для инициализации входа массивом байт.Прекрасно, еще одно место, где я должен был о чем-то догадаться. Ты разучился читать код? Или ты обычно смотришь на первую строчку примера, а потом начинаешь воображать себе реализацию? Нормальные люди бы прочитали код, осознали его суть и логику и уж потом бы начали комментировать. Но это не твой случай. Ты тупо выдернул из контекста первую строчку File.ReadAllBytes и вбросил какой-то ляп. После того, как я тебе объяснил, что ты сморозил глупость, ты не нашел ничего лучше, как отжечь ещё более каверзный вброс: "Все прогрессивное человечество использует потоковый ввод-вывод" Это пять! НахлобучТогда так: как же ты сам не понял, что это был не вброс, а просто иллюстрация ущербности твоего подхода загрузки всех архивируемых данных в память? Это же всем видно, непонятно, как же ты не догадался. Ты долго будешь дурака включать? Я тебе уже раз 10 объяснил, что в 99.9% случаев нужно именно полностью загружать объект в память - чтение / запись в БД, как вариант. Тему насчет EF продолжать, по которой ты тихло слился в сторонку? Нахлобучcooldeveloper2Не более того. Потом ты понял, что сел в лужу, и ляпнул вот это 14452881 мол "всё прогрессивное человечество использует потоковый ввод-вывод". Что за бред?Смотри комментарий про "твой код -- говно". Смотри комментарий про "твой код гавно", "первый комментарий гавно", "ВУЗ твой гавно". Вроде всё четко описал, у тебя не должно возникнуть проблем при чтении. Нахлобучcooldeveloper24. Человечество идет по легкому пути и использует байтовые массивы, т.к. это удобно и не требует высвобождения памяти. Для более редких случаев, когда требуется читать поток по кускам, возможно применение и стримов.Смотри комментарий про "твой код -- говно". Ты решаешь неимоверно узкую задачу и с жуткой упертостью отстаиваешь неверную позицию, что это -- зе бест. 1. Смотри комментарии про твой код, твой ВУЗ и тебя. 2. С каких это пор работа с байтовыми массивами - "неимоверно" узкая задача? Что за бред ты несешь? 3. Как-раз таки работа с потоками и чанками данных - это "неимоверно" узкая задача. Все нормальные люди пишут и читают объекты в массив байт и живут припеваючи. НахлобучУй ты лапочка, ну почитай сам уже. Вот тут 14453404 ты говоришь со мной, вот тут 14453594 -- с Изопропилом. Изопропил точно так же, как ты, учавствует в дискуссии. Ты предлагаешь мне дублировать посты персонально под тебя? НахлобучПовторяю в последний раз -- я про EF в частности и про ORM в целом с тобой не говорил и не собираюсь. EF и ORM - это уточнение и, собственно, следствие от первого высказывания про БД и блобы. В любом случае ни в первом ни во втором случая про FILESTREAM не было и речи. Согласен? Нахлобучcooldeveloper2Ты должен был догадаться о следующем (и догадался, просто в силу своей упертости не желаешь признавать своего просада): 1. Ты в своем гавнокоде сначала считываешь всё в память, а потом массив байт оборачиваешь в стримГовно -- это твой код, милчеловек. Я же в своем коде основывался на том определении класса ZipMemory, что ты предоставил. Не надо теперь хлопать глазками как девочка и рассказывать, что ты совсем не то имел в виду. 1. Говно - это твой иснтитут, который выпускает таких неучей на улицу. 2. Смысл предоставления ZipMemory был в том, чтобы показать, что в его теле фигурирует не массив байт, а поток . Это был ответ на твой гавнокод: 14454334 3. Ты же как мартышка уцепился за несоответствие типов MemoryStream и FileStream и начал верещать как удавленный. 4. Ох и ах. Какой ужас, перепутали типы стримов. Даже если и так, то так или иначе там и не пахло полной загрузкой файлов в память, о которой ты орал во всю глотку. Нахлобучcooldeveloper22. Я в свое коде показываю, что не нужно ничего предварительно загружать в память, нужно сразу инициализировать стрим с дескриптором на файлУже устал говорить. Дискуссия (срач, точнее) с тобой напоминает игру в шахматы с голубем. Дискуссия (срач, точнее) с тобой напоминает пинание поросёнка в луже. Отгадай, кто в роли поросенка? Правильно, роли поросенка Нахлобуч. Нахлобучcooldeveloper24. Я тебе пишу про непринципиальность сего и изменяю в ZipMemory свойство Body на универсальный тип Stream, чтоб успокоить твоё негодованиеХорошая непринципиальность, что уж. Которая так или иначе показывает, что никакой загрузки файлов в память не будет. В чем ты облажался. Нахлобучcooldeveloper25. Ты прикидываешься бревном и опять начинаешь грузить меня своими вбросами о косячности кастинга FileStream и MemoryStreamЧто такое "кастинг FileStream и MemoryStream"? Ты инженер или нет? Выражайся технически правильными терминами. Да, я уже узнал о том, какой ты "инженер". Если для тебя понятие файлового оверхеда в диковинку, что слово "кастинг" вообще расщепит твой сознание. Это слишком сложные термины, не думай о них. Сосредоточься на ответах. НахлобучСядь, остынь, подумай. Адекватный программист мог хотя бы реализовать в ZipMemory интерфейс IDisposable. Ты же не сделал и этого и снова прикрываешься "догадалками". Взялся писать код -- пиши нормально, а не в своем стиле. Сижу, остывший, в раздумьях. Адекватному программисту не нужна реализация IDisposable в ZipMemory, т.к. с таким же успехом он может диспоузить Body. Для любителей запаковать логику в единый флакон - я не против, пакуй. Главное, не воняй и не пиши глупости про весь современный мир. Нахлобучcooldeveloper2Я вообще не должен в реализации со стримами заботиться о том, что и как ты там собираешься диспоузить - я тебе прокидываю стримы, ты с ними работаешь.Снова какая-то фраза от грузчика, а не от программиста. Если у тебя сложности с пониманием элементарных вещей, могу посоветовать сад. Нахлобучcooldeveloper21. Ответил тут 14453562 2. В MemoryStream, это очевидно даже из сигнатуры метода. Ты осознаешь, что у тебя весь архив будет лежать в буфере в памяти? Садись, двойка. У любого MemoryStream есть резервное хранилище (память). Не знал? Но в отличие от массива байтов - в массиве байтов нельзя добавить и сократить поток. Читай буквари, а не отжигай на форумах. НахлобучАй, опять ты сел в лужу, пупсик -- опять ресурсы текут, опять все в памяти держишь... 1. Ты читаешь каким местом? Я тебе уже раз 10 повторил, что за диспоуз стримом сам отвечай. Не внял? 2. Что я держу в памяти? Я принимаю дескрипторы, на выхлопе четсно собранный MemoryStream. Акстись? НахлобучНу да ничего, тебе не впервой. А казалось бы большой мальчик уже. На, мотай на памперс 1. Ты уверен, что твой гавнокод рабочий? Авторитетно заявляю, он нерабочий. Более того, он даже не компилится. 2. Ты считаешь, что введение Func<Stream> нереально улучшит ситуацию? Сходи детвору посмеши в садике. 3. Как же так - адекватный программист мог хотя бы реализовать в ZipMemory интерфейс IDisposable. Где? 4. По сути - убогий код, передранный с моего и немного измененный под своё больное воображение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 14:48 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
hVosttcooldeveloper2Тебе всё правильно говорят, винрар на сервере - плохая практика, это тебе любой сисадмин скажет. Но самое большое зло - это в веб приложении запускать дополнительные процессы. Особенно, если дело касается высоконагруженных серверов приложений. Правильным выходом будет работа с архивом в памяти и только в памяти (массив байт или стрим). Это прописные истыины, о которых даже говорить как-то стыдно. Я посмотрю, как ты в памяти со своим стримом обеспечишь следующие штуковины: инкрементальное (+версионное) обновление архива контроль целостности непрерывное сжатие групп файлов высочайший уровень сжатия текстовых данных электронная цифровая подпись информация для восстановления разбитие на тома ... да и многое другое консольный винрар на столько мощнейшая штука, познать всю мощь которую это целое дао а то, что ты там не умеешь запущенными процессами в памяти рулить, запускать их в одтельном потоке, скармливать данные, управлять степенью загрузки вычислистельных ресурсов, это только твои личные проблемы если уж зарекся что-то называть «плохой практикой» будь добр изложить конкретные критичные/нерешаемые проблемы, иначе смысл этого высказывания — лишь пыль, которую пускаешь людям в глаза Мне эти штуковины не нужны. Нужно просто сжать n файлов в архив. Всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 14:50 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
cooldeveloper2, :) да знаю, что не нужны... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 14:51 |
|
||
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#18+
1. Ты уверен, что твой гавнокод рабочий? Авторитетно заявляю, он нерабочий. Более того, он даже не компилится. 2. Ты считаешь, что введение Func<Stream> нереально улучшит ситуацию? Сходи детвору посмеши в садике. 3. Как же так - адекватный программист мог хотя бы реализовать в ZipMemory интерфейс IDisposable. Где? 4. По сути - убогий код, передранный с моего и немного измененный под своё больное воображение. 5. С какой такой стати ты принудительно диспоузишь входные потоки, кто дал такое право? 6. Твой код уровня помойки. Рассмешил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2013, 14:56 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1358327]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
124ms |
get tp. blocked users: |
1ms |
| others: | 258ms |
| total: | 473ms |

| 0 / 0 |
