Example #1
0
        public void GetSize(bool doitanyway = false)
        {
            SettingsViewModel s = SettingsViewModel.Instance;

            if (s.CalculateSizes == false && doitanyway == false)
            {
                DirSize = -1;
                return;
            }
            if (_isGettingSize == true)
            {
                return;
            }

            _sizeTokenSource = new CancellationTokenSource();
            CancellationToken ct = _sizeTokenSource.Token;

            DirSize        = null;
            _isGettingSize = true;
            Task.Factory.StartNew(() => DirectorySize.DirSize(DirInfo.FullName, ct), ct, TaskCreationOptions.None, getSizeTS).ContinueWith(task => {
                if (task.Result >= 0 && ct.IsCancellationRequested == false)
                {
                    DirSize = task.Result;
                }
                else
                {
                    DirSize = -1;
                }
                _isGettingSize = false;
            });
        }
    public static long GetDirectorySize(DirectoryInfo dir)
    {
        long           total      = 0;
        FileAttributes attributes = File.GetAttributes(dir.FullName);

        if (!((attributes & FileAttributes.ReparsePoint) == FileAttributes.ReparsePoint))
        {
            try{
                FileInfo[] fileInfos = dir.GetFiles();
                foreach (FileInfo fileInfo in fileInfos)
                {
                    total += fileInfo.Length;
                }
                DirectoryInfo[] dirInfos = dir.GetDirectories();
                foreach (DirectoryInfo dirInfo in dirInfos)
                {
                    total += DirectorySize.GetDirectorySize(dirInfo);
                }
            } catch (UnauthorizedAccessException)
            {
                // log this?
            }
        }
        return(total);
    }
Example #3
0
 private void WriteScanProgress(string directoryName, DirectorySize directorySize)
 {
     Host.UI.WriteProgress(0, new ProgressRecord(0, $"Item: {directoryName}",
                                                 $"Files: {directorySize.FileCount,-7:N0} " +
                                                 $"Folders: {directorySize.FolderCount,-7:N0} " +
                                                 $"Inaccessible: {directorySize.Inaccessible,-4:N0} " +
                                                 $"Size on disk: {directorySize.ToString()}"));
 }
Example #4
0
 public SimpleActiveDirectory(object name, object password, DirectorySize size, Vpc vpc, params Subnet[] subnets)
     : base(size == DirectorySize.MicrosoftAd ? ResourceType.AwsDirectoryServiceMicrosoftAd : ResourceType.AwsDirectoryServiceSimpleAd, name, password, vpc, subnets)
 {
     if (size.HasFlag(DirectorySize.Simple))
     {
         Size = size;
         this.AdministratorAccountName = "administrator";
     }
     else
     {
         this.AdministratorAccountName = "admin";
     }
 }
Example #5
0
        static int Main(string[] args)
        {
            PrintMenu menu = new PrintMenu();
            var       root = TraversalDemo.makeTree();

            menu.AddMenuEntry('1', "Level Order Traversal Demo");
            menu.AddMenuEntry('2', "Pre-Order Traversal Demo");
            menu.AddMenuEntry('3', "Post-Order Traversal Demo");
            menu.AddMenuEntry('4', "Compute Directory Size (without exception handling in enumeration)");
            menu.AddMenuEntry('5', "Compute Directory Size (WITH exception handling and Generic class)");

            while (true)
            {
                Console.WriteLine();
                Console.WriteLine("This program demos TreeLib applications and use cases by example.");
                var key = menu.ShowMenu();

                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();
                Console.WriteLine();

                switch (key)
                {
                case '1':
                    TraversalDemo.TestLevelOrder(root);
                    break;

                case '2':
                    TraversalDemo.TestPreOrder(root);
                    break;

                case '3':
                    TraversalDemo.TestPostOrder(root);
                    break;

                case '4':
                    DirSizeWoException.DemoDirectoryTreeTraversal();
                    break;

                case '5':
                    DirectorySize.DemoDirectoryTreeTraversal();
                    break;

                default:
                    return(0);
                }
            }
        }