예제 #1
0
        public DirectoryObject PickChildDirectory()
        {
            if (n_dirs_below == 0)
            {
                return(null);
            }

            int i;

            i = random.Next(n_dirs_below);

            foreach (FileSystemObject fso in Children)
            {
                DirectoryObject dir = fso as DirectoryObject;
                if (dir == null)
                {
                    continue;
                }

                if (i == 0)
                {
                    return(dir);
                }
                --i;

                if (i < dir.n_dirs_below)
                {
                    return(dir.PickChildDirectory());
                }
                i -= dir.n_dirs_below;
            }

            throw new Exception("This also shouldn't happen!");
        }
예제 #2
0
        public bool HammerOnce(DirectoryObject dir, EventTracker tracker)
        {
            DirectoryObject target;

            target = dir.PickChildDirectory();
            if (target == null)
            {
                return(false);
            }

            Log.Info("Deleted directory '{0}'", target.ShortName);
            target.Parent.RemoveChild(target, tracker);

            return(true);
        }
예제 #3
0
 override protected FileSystemObject PickTarget(DirectoryObject dir)
 {
     return(dir.PickChildDirectory());
 }
예제 #4
0
		public bool HammerOnce (DirectoryObject dir, EventTracker tracker)
		{
			DirectoryObject target;
			target = dir.PickChildDirectory ();
			if (target == null)
				return false;
		
			Log.Info ("Deleted directory '{0}'", target.ShortName);
			target.Parent.RemoveChild (target, tracker);

			return true;
		}
예제 #5
0
		override protected FileSystemObject PickTarget (DirectoryObject dir)
		{
			return dir.PickChildDirectory ();
		}