Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace SoftUniFileLimitFixer
- {
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.IO.Compression;
- using System.Linq;
- public static class FileLimitFixerMain
- {
- public static void Main()
- {
- string[] targetFolders = { "/bin", "/obj", "/packages", "/TestResults" };
- string[] targetExtentions = { ".suo", ".StyleCop", ".zip", ".exe", ".Cache"};
- try
- {
- string currentDirectory = Directory.GetCurrentDirectory();
- string workingDirectory = currentDirectory + "/temp";
- //create new dir
- foreach (string dirPath in Directory.GetDirectories(currentDirectory, "*", SearchOption.AllDirectories))
- {
- Directory.CreateDirectory(dirPath.Replace(currentDirectory, workingDirectory));
- }
- //copy all files in the new dir
- foreach (string newPath in Directory.GetFiles(currentDirectory, "*.*", SearchOption.AllDirectories))
- {
- File.Copy(newPath, newPath.Replace(currentDirectory, workingDirectory), true);
- }
- //delete all target folders
- foreach (string targetFolder in targetFolders)
- {
- string targetPath = workingDirectory + targetFolder;
- if (Directory.Exists(targetPath))
- {
- Directory.Delete(targetPath, true);
- }
- }
- //delete all target files
- List<FileInfo> files = GetFiles(workingDirectory, targetExtentions);
- foreach (FileInfo file in files)
- {
- file.Attributes = FileAttributes.Normal;
- File.Delete(file.FullName);
- }
- //extract the new folder to zip archive
- string zipPath = currentDirectory + "_Result.zip";
- ZipFile.CreateFromDirectory(workingDirectory, zipPath, CompressionLevel.Fastest, true);
- //delete the temporary working folder
- Directory.Delete(workingDirectory, true);
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- }
- private static List<FileInfo> GetFiles(string path, params string[] extensions)
- {
- List<FileInfo> list = new List<FileInfo>();
- foreach (string ext in extensions)
- {
- list.AddRange(new DirectoryInfo(path).GetFiles("*" + ext)
- .Where(p => p.Extension.Equals(ext, StringComparison.CurrentCultureIgnoreCase))
- .ToArray());
- }
- return list;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement