8.28 - File splitter

Objetive

Create a program to split a file (of any kind) into pieces of a certain size. ir must receive the name of the file and the size as parameters. For example, it might be used by writing:

split myFile.exe 2000

If the file "myFile.exe" is 4500 bytes long, that command would produce a file named "myFile.exe.001" 2000 bytes long, another called "myFile.exe.002" 2000 bytes long, and another named "myFile.exe.003" 500 bytes long.


Solution

using System;
using System.IO;

public class splitFile { 
    
    public static void Main(string[] args ) {
        
        FileStream myFile;
        FileStream myNewFile;
        
        string nameFile;
        int BUFFER_SIZE;
        int amountRead;
        int count = 1;
        
        
        
        if (args.Length == 2)
        {
            nameFile = args[0];
            BUFFER_SIZE = Convert.ToInt32(args[1]);
            byte[] data = new  byte[BUFFER_SIZE];
   
            try
            {
                myFile = File.OpenRead (nameFile);
                do
                {
                   amountRead = myFile.Read(data, 0 , BUFFER_SIZE);
                   myNewFile = File.Create (nameFile + count.ToString("000"));
                   myNewFile.Write(data,0,amountRead);
                   count++;
                   myNewFile.Close();
                    
                }
    while (amountRead == BUFFER_SIZE);
                myFile.Close();
            }
            catch(Exception fileError)
            {
                Console.WriteLine("ERROR has ocurred while executing: " + fileError.Message);
            }
        }
        else
        {
            Console.WriteLine("The parameters are incorrects");
            Console.WriteLine("usage: splitfile namefile sizeinbytes");
        }
    }
}


Popular Posts