Advertisement
tolikpunkoff

BASE64 encoder/decoder

Jan 22nd, 2018
870
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.52 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.IO;
  5.  
  6. namespace base64cd
  7. {
  8.     //BASE64 encoder/decoder
  9.     class Program
  10.     {
  11.         static void PrintHelp()
  12.         {
  13.             string EXEName = Path.GetFileName (System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
  14.  
  15.             Console.WriteLine("BASE64 encoder/decoder");
  16.             Console.WriteLine("Use:");
  17.             Console.WriteLine(EXEName+" <-c|-d> <filename1> [filename2] [filename3] ... ");
  18.             Console.WriteLine("-c - Encode to BASE64");
  19.             Console.WriteLine("-d - Decode from BASE64");
  20.             Console.WriteLine("filenameN - File name or file mask (*.txt, *.*, etc...)");
  21.         }
  22.  
  23.        
  24.         static void Main(string[] args)
  25.         {
  26.             string dir = "";
  27.             if (args.Length < 2)
  28.             {
  29.                 PrintHelp();
  30.                 return;
  31.             };
  32.            
  33.             switch (args[0])
  34.             {
  35.                 case "-c":
  36.                     {
  37.                         dir = Directory.GetCurrentDirectory(); //Current dir
  38.  
  39.                         for (int i = 1; i < args.Length; i++)
  40.                         {
  41.                            
  42.                             string[] files = Directory.GetFiles(dir,
  43.                                 args[i], SearchOption.TopDirectoryOnly); //find files
  44.                            
  45.                             if (files.Length < 1)
  46.                             {
  47.                                 Console.WriteLine(args[i] + " not found");
  48.                             }
  49.                             else
  50.                             {
  51.                                 foreach (string f in files)
  52.                                 {
  53.                                     Console.Write(f+": ");
  54.                                                                        
  55.                                     try
  56.                                     {
  57.                                         byte[] buf = File.ReadAllBytes(f);
  58.                                         File.Copy(f, f + ".bak", true);
  59.                                         string B64Str = Convert.ToBase64String(buf);
  60.                                         File.WriteAllText(f, B64Str);
  61.                                         Console.WriteLine("OK");
  62.                                     }
  63.                                     catch (Exception ex)
  64.                                     {
  65.                                         Console.WriteLine("ERROR " + ex.Message);
  66.                                     }
  67.                                 }
  68.                             }                                                        
  69.                         }
  70.                     }; break;
  71.                 case "-d":
  72.                     {
  73.                         dir = Directory.GetCurrentDirectory(); //Current dir
  74.  
  75.                         for (int i = 1; i < args.Length; i++)
  76.                         {
  77.  
  78.                             string[] files = Directory.GetFiles(dir,
  79.                                 args[i], SearchOption.TopDirectoryOnly); //find files
  80.  
  81.                             if (files.Length < 1)
  82.                             {
  83.                                 Console.WriteLine(args[i] + " not found");
  84.                             }
  85.                             else
  86.                             {
  87.                                 foreach (string f in files)
  88.                                 {
  89.                                     Console.Write(f + ": ");
  90.  
  91.                                     try
  92.                                     {
  93.                                         string B64Str = File.ReadAllText(f);
  94.                                         File.Copy(f, f + ".bak", true);
  95.                                         byte[] buf = Convert.FromBase64String(B64Str);
  96.                                         File.WriteAllBytes(f, buf);
  97.                                         Console.WriteLine("OK");
  98.                                     }
  99.                                     catch (Exception ex)
  100.                                     {
  101.                                         Console.WriteLine("ERROR " + ex.Message);
  102.                                     }
  103.                                 }
  104.                             }
  105.                         }
  106.                     };break;
  107.                 default:
  108.                     {
  109.                         PrintHelp();
  110.                         return;
  111.                     }
  112.             }
  113.  
  114.         }
  115.     }
  116. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement