File splitter Learn programming C# Sharp

Lesson:

File Management


Exercise:

File splitter 31


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.


Code:

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");
        }
    }
}