Divisor de archivos Aprende programación con ejercicios C# Sharp

Lección:

Administración de Archivos


Ejercicio:

Divisor de archivos 58


Objetivo:

Cree un programa para dividir un archivo (de cualquier tipo) en pedazos de cierto tamaño. ir debe recibir el nombre del archivo y el tamaño como parámetros. Por ejemplo, se puede usar escribiendo:

dividir myFile.exe 2000

Si el archivo "myFile.exe" tiene una longitud de 4500 bytes, ese comando produciría un archivo llamado "myFile.exe.001" de 2000 bytes de largo, otro llamado "myFile.exe.002" de 2000 bytes de largo y otro llamado "myFile.exe.003" de 500 bytes de largo.


Código:

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