Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Заархивировать файлы
|
|||
|---|---|---|---|
|
#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 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38303168&tid=1358327]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 390ms |

| 0 / 0 |
