Copiador De Archivos - Ejercicio De Programacion C# Sharp

Este ejercicio en C# consiste en crear un programa que copie un archivo de origen a un archivo de destino utilizando un FileStream y un tamaño de bloque de 512 KB. El programa debe ser capaz de manejar diferentes casos, como cuando el archivo de origen no existe o cuando el archivo de destino ya existe. En caso de que el archivo de destino ya esté presente, el programa deberá advertir al usuario, pero no sobrescribir el archivo existente.

El uso de bloques de 512 KB es una forma eficiente de manejar grandes archivos, ya que permite copiar los datos en fragmentos más pequeños y gestionables, lo que mejora el rendimiento del programa y reduce el uso de memoria. Este ejercicio te permitirá familiarizarte con el manejo de archivos binarios en C# mediante el uso de FileStream, un tipo de flujo de datos que proporciona acceso a los archivos de manera eficiente.

El programa debe aceptar dos parámetros: el archivo de origen y el archivo de destino. Debe asegurarse de que el archivo de origen exista y verificar si el archivo de destino ya está presente, proporcionando una advertencia si es necesario. Este ejercicio es útil para aprender cómo manejar excepciones, cómo trabajar con archivos grandes utilizando FileStream, y cómo gestionar interacciones básicas con el usuario.

 Categoría

Administración de Archivos

 Ejercicio

Copiador De Archivos

 Objectivo

Cree un programa para copiar un archivo de origen en un archivo de destino. Debe utilizar FileStream y un tamaño de bloque de 512 Kb. Un ejemplo de uso podría ser:

archivo mycopy.txt e:file2.txt

Debe comportarse correctamente si el archivo de origen no existe y debe advertir (pero no sobrescribirlo) si el archivo de destino existe

 Ejemplo Ejercicio C#

 Copiar Código C#
// Import the necessary namespaces for file handling
using System;
using System.IO;

class FileCopier
{
    // Main method where the program starts
    static void Main(string[] args)
    {
        // Check if the user has provided the correct number of arguments
        if (args.Length != 2)
        {
            Console.WriteLine("Usage: mycopy  ");
            return;
        }

        // Get the source and destination file paths from the command line arguments
        string sourceFile = args[0];
        string destinationFile = args[1];

        // Check if the source file exists
        if (!File.Exists(sourceFile))
        {
            Console.WriteLine("Error: The source file does not exist.");
            return;
        }

        // Check if the destination file already exists
        if (File.Exists(destinationFile))
        {
            Console.WriteLine("Warning: The destination file already exists. It will not be overwritten.");
            return;
        }

        try
        {
            // Open the source file for reading
            using (FileStream sourceStream = new FileStream(sourceFile, FileMode.Open, FileAccess.Read))
            {
                // Open the destination file for writing
                using (FileStream destStream = new FileStream(destinationFile, FileMode.Create, FileAccess.Write))
                {
                    // Set the block size to 512 KB
                    byte[] buffer = new byte[512 * 1024];  // 512 KB

                    int bytesRead;
                    // Read from the source file and write to the destination file in blocks of 512 KB
                    while ((bytesRead = sourceStream.Read(buffer, 0, buffer.Length)) > 0)
                    {
                        destStream.Write(buffer, 0, bytesRead);
                    }

                    Console.WriteLine("File copied successfully.");
                }
            }
        }
        catch (Exception ex)
        {
            // Catch any errors that occur during file operations
            Console.WriteLine("An error occurred while copying the file: " + ex.Message);
        }
    }
}

 Salida

Command-Line Example:
mycopy source.txt destination.txt

Scenario 1 - File Copy Success: If the program successfully copies the file, the output will be:
File copied successfully.

Scenario 2 - Source File Doesn’t Exist: If the source file does not exist, the output will be:
Error: The source file does not exist.

Scenario 3 - Destination File Already Exists: If the destination file already exists, the output will be:
Warning: The destination file already exists. It will not be overwritten.

Scenario 4 - Other Errors: If any other error occurs (e.g., permission issues), the output will be:
An error occurred while copying the file: [Error Message]

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de Administración de Archivos

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Lector de MP3

    Este ejercicio en C# trata sobre las especificaciones ID3, que se aplican a cualquier archivo o contenedor audiovisual, pero se utilizan principalmente con contenedor...

  •  Conversor de C a C#

    Este ejercicio consiste en crear un programa que convierta programas simples en C a C#, como el siguiente ejemplo, asegurando que el programa resultante compil...

  •  Divisor de archivos

    Este ejercicio consiste en crear un programa que divida un archivo (de cualquier tipo) en partes de un tamaño específico. El programa debe recibir como parámetros el nombre ...

  •  Cifrar un archivo BMP

    Este ejercicio consiste en crear un programa que encripte y desencripte un archivo de imagen BMP cambiando la marca "BM" en los primeros dos bytes a "MB" y viceversa. Para e...

  •  Conversor CSV

    Este ejercicio consiste en crear un programa que lea un archivo CSV con cuatro bloques de datos separados por comas (tres de texto y uno numérico) y genere un archivo de tex...

  •  Comparador de archivos

    Este ejercicio consiste en crear un programa en C# que determine si dos archivos (de cualquier tipo) son idénticos, es decir, si tienen el mismo contenido. El ...