Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Reflection;
- using System.IO;
- using System.IO.Compression;
- namespace Funciones
- {
- class ManejadorDeArchivos
- {
- // Ubicación de los logs
- public string ubicaciónDeLogs = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location).ToString() +
- "\\" + "logs" +
- "\\" + DateTime.Today.ToString("yyyy"); // Para hacer esto, creamos una carpeta con el número del año
- // Constructor
- public ManejadorDeArchivos()
- {
- // Conseguir los nombres de todos las carpetas
- string[] carpetas = Directory.GetDirectories(
- System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location).ToString() +
- "\\" + "logs");
- Console.WriteLine(ubicaciónDeLogs);
- BorrarCarpetas(carpetas);
- }
- public void BorrarCarpetas(string[] carpetas)
- {
- // Para cada carpeta dentro de la carpeta
- foreach (string carpeta in carpetas)
- {
- Console.WriteLine(carpeta.ToString());
- // Si la ubicación no es igual al año en el que estamos borrar
- if (!(carpeta.ToString() == ubicaciónDeLogs))
- {
- // Conseguir los nombres de todos los archivos
- string[] archivos = Directory.GetFiles(carpeta.ToString());
- // Para cada archivo dentro de la carpeta
- foreach (string archivo in archivos)
- {
- // Borrar archivo
- File.Delete(archivo.ToString());
- }
- // Borrar archivo
- Directory.Delete(carpeta.ToString());
- }
- }
- }
- // Muestra la ubicación de los logs
- public void MostrarUbicación()
- {
- Console.WriteLine("Ubicación: " + ubicaciónDeLogs);
- }
- // Comprime archivos
- public void Comprimir(string __ubicaciónDelArchivo)
- {
- // Conseguir ubicación
- string ubicación = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location).ToString();
- // Primero creamos el nombre que queremos que tenga el archivo
- string nombreDeLaCarpeta = "datos\\logs";
- // Crear carpeta
- if (!Directory.Exists(ubicación + "\\" + nombreDeLaCarpeta))
- {
- // Crear archivo
- Directory.CreateDirectory(ubicación + "\\" + nombreDeLaCarpeta);
- Console.WriteLine("Se creó el directorio.");
- }
- // Nombre del archivo
- string nombreDelArchivo = "logs_" + DateTime.Today.ToString("dd_MM_yyyy");
- // Hacer todo más fácil
- string ubicaciónDelArchivo = ubicación + "\\" + nombreDeLaCarpeta + "\\" + nombreDelArchivo + ".zip";
- // Preguntar si el archivo existe.
- if (File.Exists(ubicaciónDelArchivo))
- {
- File.Delete(ubicaciónDelArchivo);
- }
- // Preguntar si el archivo no existe.
- if (!File.Exists(ubicaciónDelArchivo))
- {
- ZipFile.CreateFromDirectory(ubicaciónDeLogs, ubicaciónDelArchivo);
- }
- }
- // Registrar actividades de la aplicación.
- public void Registro(string __registrar)
- {
- // Crear carpeta
- if (!Directory.Exists(ubicaciónDeLogs))
- {
- // Crear archivo
- Directory.CreateDirectory(ubicaciónDeLogs);
- Console.WriteLine("Se creó el directorio.");
- }
- // Nombre del archivo
- string nombreDelArchivo = "LogDeAcciones";
- // Creamos un ajuste de escritura prefijado
- string prefijo = $"[{DateTime.Now.ToString("HH:mm:ss")}]: ";
- // Vamos a guardar la ubicación del archivo en un string
- string ubicaciónDelArchivo = ubicaciónDeLogs + "\\" + // Ubicación
- (DateTime.Today.ToString("dd_MM_yyyy") + "_" + nombreDelArchivo) + // Nombre del archivo
- ".txt"; // Extensión del archivo
- // Convertir de tiempo a cadena de texto de manera específica
- Console.WriteLine("Fecha: " + DateTime.Today.ToString("dd_MM_yyyy"));
- // Si el archivo no existe, crearlo.
- // Esto solo se ejecutará la primera vez que se crea el archivo
- if (!File.Exists(ubicaciónDelArchivo))
- {
- // Creamos el archivo
- using (StreamWriter archivoDeLogs = File.CreateText(ubicaciónDelArchivo))
- {
- // Escribimos lo que querramos dentro del archivo de texto
- archivoDeLogs.WriteLine(prefijo + "Comienzo del log.");
- }
- Console.WriteLine("Se creó el archivo de texto.");
- }
- // Si el archivo existe entonces leer y escribir en él
- if (File.Exists(ubicaciónDelArchivo))
- {
- // Abrimos el archivo para escribir
- using (StreamWriter archivoDeLogs = File.AppendText(ubicaciónDelArchivo))
- {
- // Escribimos lo que querramos dentro del archivo de texto
- archivoDeLogs.WriteLine(prefijo + __registrar);
- }
- }
- }
- }
- }
- namespace ConsoleApp3
- {
- class Program
- {
- static void Main(string[] args)
- {
- Funciones.ManejadorDeArchivos mda = new Funciones.ManejadorDeArchivos();
- mda.Registro("Línea nueva.");
- mda.Comprimir(mda.ubicaciónDeLogs);
- mda.MostrarUbicación();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement