예제 #1
0
 private void ToggleLabels(bool visible)
 {
     if (visible)
     {
     }
     else
     {
         _count = 0;
         TotalFileSizeNumberLabel.Text      = "";
         amountOfFilesFoundNumberLabel.Text = "";
         AmountOfFilesTextLabel.Enabled     = false;
         TotalFileSize.Enabled = false;
         TotalFileSizeNumberLabel.Hide();
         amountOfFilesFoundNumberLabel.Hide();
         DeleteFilesButton.Enabled = false;
         FileList.Clear();
         loadingCircle1.Visible = false;
         _accessDeniedException = false;
     }
 }
예제 #2
0
        private void ScanFilesInParallel()
        {
            clearFilesButton.Enabled  = false;
            loadingCircle1.Visible    = true;
            DeleteFilesButton.Enabled = false;
            FileList.Clear();
            EnableBoxes(true);
            BeginScanButton.Enabled = false;
            ScanningLabel.Visible   = true;

            Task.Run(() =>
            {
                var result            = new List <string>();
                FileParser fileParser = new FileParser();
                try
                {
                    if (_jpgFilesChecked)
                    {
                        result.AddRange(fileParser.ParseFiles(_osuDirectory, "*.jpg"));
                    }
                    if (_pngFilesChecked)
                    {
                        result.AddRange(fileParser.ParseFiles(_osuDirectory, "*.png"));
                    }
                    if (_wavFilesChecked)
                    {
                        result.AddRange(fileParser.ParseFiles(_osuDirectory, "*.wav"));
                    }
                    if (_aviFilesChecked)
                    {
                        result.AddRange(fileParser.ParseFiles(_osuDirectory, "*.avi"));
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Access denied. Try running as administrator.");
                    return(null);
                }
                return(result);
            })
            .ContinueWith((task) => {
                if (task.Result == null)
                {
                    EnableBoxes(true);
                    loadingCircle1.Visible  = false;
                    ScanningLabel.Visible   = false;
                    BeginScanButton.Enabled = true;
                }
                else
                {
                    FileList.AddRange(task.Result);
                    BeginScanButton.Enabled = true;
                    loadingCircle1.Visible  = false;
                    ScanningLabel.Visible   = false;

                    // Error checking - 0 files, etc

                    if (FileList.Count == 0 && _osuDirectory != null && _accessDeniedException == false)
                    {
                        MessageBox.Show("No files have been found. Did you choose the correct directory for Osu?");
                        EnableBoxes(true);
                    }
                    else if (_osuDirectory != null && _accessDeniedException == false)
                    {
                        _count = FileList.Count;
                        amountOfFilesFoundNumberLabel.Text = _count.ToString();
                        AmountOfFilesTextLabel.Enabled     = true;

                        // Get total size of all files and show next to total amount of files

                        TotalFileSize.Enabled = true;
                        double totalSize      = 0;
                        foreach (var value in FileList)
                        {
                            var fileInfo = new FileInfo(value);
                            totalSize   += fileInfo.Length;
                        }
                        var totalSizeHumanized        = totalSize.Bytes();
                        TotalFileSizeNumberLabel.Text = totalSizeHumanized.Humanize("#.##");
                        clearFilesButton.Enabled      = true;
                        DeleteFilesButton.Enabled     = true;
                        EnableBoxes(true);
                        DeleteFilesButton.Enabled = true;
                        amountOfFilesFoundNumberLabel.Show();
                        TotalFileSizeNumberLabel.Show();
                        BeginScanButton.Enabled = true;
                    }
                }
            }, TaskScheduler.FromCurrentSynchronizationContext());
        }