Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Viktor.Mirev avatar Viktor.Mirev 23 Точки

[C# Advanced] 5. Slicing File

Задачата е да се разцепи файл на n части като след това се сглоби в нов файл, но нещо при сглобяването не се получава и се визуализира само това от част 1. Ако някой се сеща къде може да е проблема. Благодаря Предварително! 
Код

Тагове:
0
C# Advanced 06/06/2017 11:32:07
kolioi avatar kolioi 641 Точки
Best Answer

В края на файла в Slice() записваш по-малко байтове отколкото си прочел. Може да направиш нещо такова

int bytesToRead = buffer.Length;
if (fileWriter.Length + buffer.Length > partSize)
    bytesToRead = (int)(partSize - fileWriter.Length);

number = fileReader.Read(buffer, 0, bytesToRead);

и ще стане.

0
05/06/2017 13:58:21
Viktor.Mirev avatar Viktor.Mirev 23 Точки

Не се бях сетил за това, Благодаря!

0
kolioi avatar kolioi 641 Точки

Няма проблем. Не съм чел условието на задачата, но аз бих го направил малко по-различно. Не знам защо буфера ти е 4К, просто го направи колкото е големината на всеки един от малките файлове. След това само четеш и записваш, и така докато разделиш на части големия файл. Ако пък има изискване буфера да е точно 4К, тогава просто изчисли колко пъти трябва да четеш по 4К, като последния път не пълниш целия буфер, а само колкото трябва, както ти показах. Например, ако всяко парче (малък файл) трябва да е с големина 15К, трябва да четеш 15/4+1 = 4 пъти.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.