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); }