Grupo
Manejo de archivos en C#
Objectivo
1. El usuario proporcionará el nombre del archivo que se va a invertir.
2. El programa abrirá el archivo original usando FileStream para leer sus bytes.
3. El programa creará un nuevo archivo con el mismo nombre que el original, pero con la extensión .inv.
4. Escribirá los bytes del archivo original en el nuevo archivo en orden inverso.
5. Tras completar el proceso, el programa mostrará un mensaje indicando que la operación se ha realizado correctamente.
Cree un programa para "invertir" un archivo usando un "FileStream". El programa debe crear un archivo con el mismo nombre, terminado en ".inv", que contenga los mismos bytes que el archivo original, pero en orden inverso. El primer byte del archivo resultante debe ser el último byte del archivo original, el segundo byte el penúltimo, y así sucesivamente hasta el último byte del archivo original, que debe aparecer en la primera posición del archivo resultante.
Ejemplo de ejercicio en C#
Mostrar código C#
using System;
using System.IO;
class FileInverter
{
static void Main(string[] args)
{
Console.WriteLine("Please enter the name of the file to invert:");
string fileName = Console.ReadLine();
try
{
if (!File.Exists(fileName))
{
Console.WriteLine("Error: The specified file does not exist.");
return;
}
using (FileStream inputFile = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
using (FileStream outputFile = new FileStream(fileName + ".inv", FileMode.Create, FileAccess.Write))
{
long fileLength = inputFile.Length;
for (long i = fileLength - 1; i >= 0; i--)
{
inputFile.Seek(i, SeekOrigin.Begin);
int byteValue = inputFile.ReadByte();
outputFile.WriteByte((byte)byteValue);
}
}
}
Console.WriteLine($"The file '{fileName}' has been successfully inverted and saved as '{fileName}.inv'.");
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
}
Output
//If the user enters example.txt and the file contains the following bytes:
Hello, world!
//The program will create a file named example.txt.inv with the reversed content:
!dlrow ,olleH
Código de ejemplo copiado
Comparte este ejercicio de C#