Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Collections.Generic;
- class DirectoryDeleter{
- public static void DeleteSubdirsOlderThan(DirectoryInfo di, TimeSpan ts){
- if(!di.Exists) return;
- Stack<DirectoryInfo> dirs = new Stack<DirectoryInfo>();
- dirs.Push(di);
- DirectoryInfo current;
- while(dirs.Count > 0){
- current = dirs.Pop();
- try{
- foreach(DirectoryInfo subdir in current.GetDirectories()){
- if((DateTime.Now - subdir.CreationTime) > ts){
- try{
- subdir.Delete(true);
- }
- catch(UnauthorizedAccessException){
- Console.Error.WriteLine("Access denied: \"{0}\"", subdir.FullName);
- }
- catch(DirectoryNotFoundException){
- Console.Error.WriteLine("Directory not found: \"{0}\"", subdir.FullName);
- }
- catch(IOException){
- Console.Error.WriteLine("Directory is read-oly: \"{0}\"", subdir.FullName);
- }
- }
- else{
- dirs.Push(subdir);
- }
- }
- }
- catch(UnauthorizedAccessException){}
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement