Beispiel #1
0
        private async void Pusk_Click(object sender, RoutedEventArgs e)
        {
            ((Button)sender).IsEnabled = false;
            DriveInfo[] drives     = DriveInfo.GetDrives().Where(x => x.DriveType == DriveType.Fixed).ToArray();
            var         hardDrives = new List <MainWindowTree>();

            foreach (var hardDrive in drives)
            {
                var driveInfo = new MainWindowTree
                {
                    Name     = hardDrive.Name,
                    SubTrees = await _dirScanner.GetFileSystemInfoAsync(hardDrive.Name)
                };
                hardDrives.Add(driveInfo);
            }
            WindowTreeView.ItemsSource = hardDrives;
            ((Button)sender).IsEnabled = true;
        }
        private async Task <MainWindowTree> GetInfoAsync(string path)
        {
            var directoryInfo = new MainWindowTree();

            var directories = await GetDirectoriesAsync(path);

            var files = GetFiles(path);

            directoryInfo.SubTrees.AddRange(directories);
            directoryInfo.SubTrees.AddRange(files);

            directoryInfo.Name         = Path.GetFileName(path);
            directoryInfo.Size         = directoryInfo.SubTrees.Sum(item => item.Size);
            directoryInfo.Files        = directories.Sum(dir => dir.Files) + files.Count;
            directoryInfo.Folders      = directories.Sum(dir => dir.Folders) + directories.Count;
            directoryInfo.LastModified = new DirectoryInfo(path).CreationTime;
            return(directoryInfo);
        }