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

Lección:

Administración de Archivos


Ejercicio:

Conversor de archivos 67


Objetivo:

Crear un programa para "invertir" un archivo: crear un archivo con el mismo nombre que termine en ".inv" y que contenga los mismos bytes que el archivo original pero en orden inverso (el primer byte será el último, el segundo será el penúltimo, y así sucesivamente, hasta el último byte del archivo original, que debería aparecer en la primera posición del archivo resultante).

Debe entregar solo el archivo ".cs", que debe contener un comentario con su nombre.

Sugerencia: Para conocer la longitud de un archivo binario (BinaryReader), puede usar "myFile.BaseStream.Length" y puede saltar a una posición diferente con "myFile.BaseStream.Seek(4, SeekOrigin.Current);"

Las posiciones iniciales que podemos utilizar son: SeekOrigin.Begin, SeekOrigin.Current- o SeekOrigin.End


Código:

using System;
using System.IO;
public class FileInverter
{
    public static void Main()
    {
        BinaryReader inFile = new BinaryReader(
            File.Open("hola.txt", FileMode.Open));

        BinaryWriter outFile = new BinaryWriter(
            File.Open("hola.txt.inv", FileMode.Create));

        long filesize = inFile.BaseStream.Length;

        for (long i = filesize - 1; i >= 0; i--)
        {
            inFile.BaseStream.Seek(i, SeekOrigin.Begin);
            byte b = inFile.ReadByte();
            outFile.Write(b);
        }
        inFile.Close();
        outFile.Close();
    }
}