Advertisement
Guest User

Untitled

a guest
Jun 5th, 2017
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.41 KB | None | 0 0
  1.  
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.IO;
  6.  
  7. namespace SlicingFile
  8. {
  9.     public static class Program
  10.     {
  11.         public static void Main(string[] args)
  12.         {
  13.            Slice(@"../../file.png", @"../../", 3);
  14.             Assemble(new List<string>(){@"..\..\part1.png", @"..\..\part2.png", @"..\..\part3.png"},@"..\..\" );
  15.         }
  16.  
  17.         public static void Slice(string sourceFile, string destinationDirectory, int parts)
  18.         {
  19.             var buffer = new byte[4096];
  20.             using (var fileReader = new FileStream(sourceFile, FileMode.Open))
  21.             {
  22.                 var lenght = fileReader.Length;
  23.                 long partSize = (long)Math.Ceiling((double)lenght/parts);
  24.  
  25.                 for (int i = 1; i <= parts; i++)
  26.                 {
  27.                    
  28.                     using (var fileWriter = new FileStream(destinationDirectory + "part" + i + ".png", FileMode.Create))
  29.                     {
  30.  
  31.                         int number = fileReader.Read(buffer, 0, buffer.Length);
  32.                         //var transferred = 0;
  33.                         while (number!=0 && fileWriter.Length<=partSize)
  34.                         {
  35.                             fileWriter.Write(buffer,0,number);
  36.  
  37.                             number = fileReader.Read(buffer, 0, buffer.Length);
  38.  
  39.                             Console.WriteLine(fileWriter.Length);
  40.                            
  41.                         }
  42.                         Console.WriteLine("Next");
  43.                     }
  44.        
  45.                 }
  46.             }
  47.         }
  48.  
  49.         public static void Assemble(List<string> files, string destinationDirectory)
  50.         {
  51.             var buffer = new byte[4096];
  52.             using (var assembeled = new FileStream(destinationDirectory + "assembled.png", FileMode.Create))
  53.             {
  54.                 for (int i = 0; i < files.Count; i++)
  55.                 {
  56.                     using (var reader = new FileStream(files[i], FileMode.Open))
  57.                     {
  58.                         int number = reader.Read(buffer, 0, buffer.Length);
  59.                         while (number != 0)
  60.                         {
  61.                             assembeled.Write(buffer,0,number);
  62.                             number = reader.Read(buffer, 0, buffer.Length);
  63.                         }
  64.                     }
  65.                 }
  66.             }          
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement