Advertisement
b_gandurov

files

May 29th, 2024
795
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.12 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Reflection.Emit;
  7. using System.Text;
  8. using static System.Net.WebRequestMethods;
  9.  
  10. namespace DSA
  11. {
  12.     public class FileUtils
  13.     {
  14.         public const string Path = @"..\..\..\Images";
  15.         public static List<string> files = new List<string>();
  16.         public static Dictionary<string, int> stats = new Dictionary<string, int>();
  17.  
  18.  
  19.         public static string GetFileExtension(string filePath)
  20.         {
  21.             int lastIndex = filePath.LastIndexOf('.');
  22.  
  23.             return filePath[lastIndex..];
  24.         }
  25.  
  26.         public static string GetFileName(string path)
  27.         {
  28.             int lastIndex = path.LastIndexOf('\\') + 1;
  29.             string lastPart = path[lastIndex..];
  30.             return lastPart;
  31.         }
  32.  
  33.         public static string TraverseDirectories(string path, int level = 0)
  34.         {
  35.             var indentation = new string(' ', level * 2);
  36.             var result = $"{indentation}{GetFileName(path)}:\n";
  37.  
  38.             foreach (var file in Directory.GetFiles(path))
  39.             {
  40.                 result += $"{indentation + new string(' ', 2)}{GetFileName(file)}\n";
  41.             }
  42.  
  43.             foreach (var directory in Directory.GetDirectories(path))
  44.             {
  45.                 result += TraverseDirectories(directory, level + 1);
  46.             }
  47.  
  48.             return result;
  49.         }
  50.  
  51.         public static List<string> FindFiles(string path, string extension)
  52.         {
  53.  
  54.             foreach (var file in Directory.GetFiles(path))
  55.             {
  56.                 if (GetFileExtension(file).Equals(extension))
  57.                 {
  58.                     files.Add(GetFileName(file));
  59.                 }
  60.             }
  61.  
  62.             foreach (var directory in Directory.GetDirectories(path))
  63.             {
  64.                 FindFiles(directory, extension);
  65.             }
  66.  
  67.             return files;
  68.         }
  69.  
  70.         public static bool FileExists(string path, string fileName)
  71.         {
  72.             foreach (var file in Directory.GetFiles(path))
  73.             {
  74.                 if (GetFileName(file).Equals(fileName))
  75.                 {
  76.                     return true;
  77.                 }
  78.             }
  79.  
  80.             foreach (var directory in Directory.GetDirectories(path))
  81.             {
  82.                 if (FileExists(directory, fileName))
  83.                 {
  84.                     return true;
  85.                 }
  86.             }
  87.  
  88.             return false;
  89.         }
  90.  
  91.         public static Dictionary<string, int> GetDirectoryStats(string path)
  92.         {
  93.  
  94.             foreach (var file in Directory.GetFiles(path))
  95.             {
  96.                 var extension = GetFileExtension(file);
  97.                 if (!stats.ContainsKey(extension))
  98.                 {
  99.                     stats[extension] = 0;
  100.                 }
  101.                 stats[extension]++;
  102.             }
  103.  
  104.             foreach (var directory in Directory.GetDirectories(path))
  105.             {
  106.                 GetDirectoryStats(directory);
  107.             }
  108.  
  109.             return stats;
  110.         }
  111.     }
  112. }
  113.  
  114.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement