[C# Advanced] 5. Slicing File

[C# Advanced] 5. Slicing File

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 245 Точки
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 245 Точки

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

0