Advertisement
Fedekiller999

Untitled

Dec 10th, 2020
871
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.86 KB | None | 0 0
  1. using System;
  2. using System.Reflection;
  3. using System.IO;
  4. using System.IO.Compression;
  5.  
  6. namespace Funciones
  7. {
  8.     class ManejadorDeArchivos
  9.     {
  10.  
  11.         // Ubicación de los logs
  12.         public string ubicaciónDeLogs = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location).ToString() +
  13.             "\\" + "logs" +
  14.             "\\" + DateTime.Today.ToString("yyyy"); // Para hacer esto, creamos una carpeta con el número del año
  15.  
  16.         // Constructor
  17.         public ManejadorDeArchivos()
  18.         {
  19.             // Conseguir los nombres de todos las carpetas
  20.             string[] carpetas = Directory.GetDirectories(
  21.                 System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location).ToString() +
  22.                 "\\" + "logs");
  23.  
  24.             Console.WriteLine(ubicaciónDeLogs);
  25.             BorrarCarpetas(carpetas);
  26.  
  27.         }
  28.  
  29.         public void BorrarCarpetas(string[] carpetas)
  30.         {
  31.             // Para cada carpeta dentro de la carpeta
  32.             foreach (string carpeta in carpetas)
  33.             {
  34.                 Console.WriteLine(carpeta.ToString());
  35.                 // Si la ubicación no es igual al año en el que estamos borrar
  36.                 if (!(carpeta.ToString() == ubicaciónDeLogs))
  37.                 {
  38.                     // Conseguir los nombres de todos los archivos
  39.                     string[] archivos = Directory.GetFiles(carpeta.ToString());
  40.  
  41.                     // Para cada archivo dentro de la carpeta
  42.                     foreach (string archivo in archivos)
  43.                     {
  44.                         // Borrar archivo
  45.                         File.Delete(archivo.ToString());
  46.                     }
  47.  
  48.                     // Borrar archivo
  49.                     Directory.Delete(carpeta.ToString());
  50.                 }
  51.             }
  52.         }
  53.  
  54.         // Muestra la ubicación de los logs
  55.         public void MostrarUbicación()
  56.         {
  57.             Console.WriteLine("Ubicación: " + ubicaciónDeLogs);
  58.         }
  59.  
  60.         // Comprime archivos
  61.         public void Comprimir(string __ubicaciónDelArchivo)
  62.         {
  63.             // Conseguir ubicación
  64.             string ubicación = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location).ToString();
  65.  
  66.             // Primero creamos el nombre que queremos que tenga el archivo
  67.             string nombreDeLaCarpeta = "datos\\logs";
  68.  
  69.             // Crear carpeta
  70.             if (!Directory.Exists(ubicación + "\\" + nombreDeLaCarpeta))
  71.             {
  72.                 // Crear archivo
  73.                 Directory.CreateDirectory(ubicación + "\\" + nombreDeLaCarpeta);
  74.                 Console.WriteLine("Se creó el directorio.");
  75.             }
  76.  
  77.             // Nombre del archivo
  78.             string nombreDelArchivo = "logs_" + DateTime.Today.ToString("dd_MM_yyyy");
  79.  
  80.             // Hacer todo más fácil
  81.             string ubicaciónDelArchivo = ubicación + "\\" + nombreDeLaCarpeta + "\\" + nombreDelArchivo + ".zip";
  82.  
  83.             // Preguntar si el archivo existe.
  84.             if (File.Exists(ubicaciónDelArchivo))
  85.             {
  86.                 File.Delete(ubicaciónDelArchivo);
  87.             }
  88.  
  89.             // Preguntar si el archivo no existe.
  90.             if (!File.Exists(ubicaciónDelArchivo))
  91.             {
  92.                 ZipFile.CreateFromDirectory(ubicaciónDeLogs, ubicaciónDelArchivo);
  93.             }
  94.         }
  95.  
  96.         // Registrar actividades de la aplicación.
  97.         public void Registro(string __registrar)
  98.         {
  99.  
  100.             // Crear carpeta
  101.             if (!Directory.Exists(ubicaciónDeLogs))
  102.             {
  103.                 // Crear archivo
  104.                 Directory.CreateDirectory(ubicaciónDeLogs);
  105.                 Console.WriteLine("Se creó el directorio.");
  106.             }
  107.  
  108.             // Nombre del archivo
  109.             string nombreDelArchivo = "LogDeAcciones";
  110.  
  111.             // Creamos un ajuste de escritura prefijado
  112.             string prefijo = $"[{DateTime.Now.ToString("HH:mm:ss")}]: ";
  113.  
  114.             // Vamos a guardar la ubicación del archivo en un string
  115.             string ubicaciónDelArchivo = ubicaciónDeLogs + "\\" + // Ubicación
  116.                 (DateTime.Today.ToString("dd_MM_yyyy") + "_" + nombreDelArchivo) + // Nombre del archivo
  117.                 ".txt"; // Extensión del archivo
  118.  
  119.             // Convertir de tiempo a cadena de texto de manera específica
  120.             Console.WriteLine("Fecha: " + DateTime.Today.ToString("dd_MM_yyyy"));
  121.  
  122.             // Si el archivo no existe, crearlo.
  123.             // Esto solo se ejecutará la primera vez que se crea el archivo
  124.             if (!File.Exists(ubicaciónDelArchivo))
  125.             {
  126.                 // Creamos el archivo
  127.                 using (StreamWriter archivoDeLogs = File.CreateText(ubicaciónDelArchivo))
  128.                 {
  129.                     // Escribimos lo que querramos dentro del archivo de texto
  130.                     archivoDeLogs.WriteLine(prefijo + "Comienzo del log.");
  131.                 }
  132.  
  133.                 Console.WriteLine("Se creó el archivo de texto.");
  134.             }
  135.  
  136.             // Si el archivo existe entonces leer y escribir en él
  137.             if (File.Exists(ubicaciónDelArchivo))
  138.             {
  139.                 // Abrimos el archivo para escribir
  140.                 using (StreamWriter archivoDeLogs = File.AppendText(ubicaciónDelArchivo))
  141.                 {
  142.                     // Escribimos lo que querramos dentro del archivo de texto
  143.                     archivoDeLogs.WriteLine(prefijo + __registrar);
  144.                 }
  145.             }
  146.         }
  147.     }
  148. }
  149.  
  150. namespace ConsoleApp3
  151. {
  152.     class Program
  153.     {
  154.         static void Main(string[] args)
  155.         {
  156.             Funciones.ManejadorDeArchivos mda = new Funciones.ManejadorDeArchivos();
  157.             mda.Registro("Línea nueva.");
  158.             mda.Comprimir(mda.ubicaciónDeLogs);
  159.             mda.MostrarUbicación();
  160.         }
  161.     }
  162. }
  163.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement