예제 #1
0
        private void View_ResultSelected(object sender, EventArgs e)
        {
            if (programStatus == ProgramStatus.FileOperation)
            {
                return;
            }

            mainFormView.ClearProperties();

            int[] selectedItems = null;

            int itemsCount = mainFormView.SelectedItemsCount;

            const ushort maxViewedItems        = 1024;
            const ushort maxSizeCountableItems = 4096;

            FileInfo file = null;

            if (itemsCount == 0)
            {
                mainFormView.IsShowEnabled   = false;
                mainFormView.IsOpenEnabled   = false;
                mainFormView.IsCopyEnabled   = false;
                mainFormView.IsMoveEnabled   = false;
                mainFormView.IsDeleteEnabled = false;
                return;
            }

            mainFormView.IsShowEnabled = itemsCount == 1;
            mainFormView.IsOpenEnabled = itemsCount == 1;

            if (programStatus == ProgramStatus.ReadyToSearch)
            {
                mainFormView.IsCopyEnabled   = true;
                mainFormView.IsMoveEnabled   = true;
                mainFormView.IsDeleteEnabled = true;
            }

            if (itemsCount > 1)
            {
                mainFormView.AddProperty($"Selected files: {itemsCount}{Environment.NewLine}");

                if (itemsCount > maxSizeCountableItems)
                {
                    return;
                }

                selectedItems = mainFormView.SelectedItems;

                long fileSizesSum = selectedItems.AsParallel().Sum((i => files[i].Length));

                mainFormView.AddProperty($"Total size: {model.GetFileSize(fileSizesSum)}{Environment.NewLine}{Environment.NewLine}");

                if (itemsCount > maxViewedItems)
                {
                    return;
                }

                for (int i = 0; i < itemsCount; i++)
                {
                    file = files[selectedItems[i]];

                    mainFormView.AddProperty($"Full name: {file.FullName}{Environment.NewLine}{Environment.NewLine}");
                }

                return;
            }

            selectedItems = mainFormView.SelectedItems;

            int number = selectedItems[0];

            if (number < 0)
            {
                return;
            }

            file = files[number];

            mainFormView.AddProperty($"Full Name: {file.FullName}\n");
            mainFormView.AddProperty($"Creation Time: {file.CreationTime}\n");
            mainFormView.AddProperty($"Last Access Time: {file.LastAccessTime}\n");
            mainFormView.AddProperty($"Size: {model.GetFileSize(file.Length)}\n");
            mainFormView.AddProperty($"Readonly: {file.IsReadOnly}");
        }