示例#1
0
        // Tread
        private void GetDriveInfo()
        {
            DriveInfo driveInfo = new DriveInfo(rootDir);

            string driveName = driveInfo.VolumeLabel;

            if (driveName.Length == 0)
            {
                driveName = "-нет-";
            }
            string driveFreeSpace  = NumberFormat.DigitNumber(driveInfo.TotalFreeSpace);
            string driveTotalSpace = NumberFormat.DigitNumber(driveInfo.TotalSize);

            DriveInfoToLabel("[" + driveName + "] " + driveFreeSpace + "  из " + driveTotalSpace);
        }
示例#2
0
        // Thread
        private void GetFolderInfo()
        {
            DirectoryInfo directoryInfo = new DirectoryInfo(currentDir);

            long sizeSelectedItem = 0;
            long sizeAllItem      = DirSize(directoryInfo);

            int countSelectedFiles = 0;
            int countAllFiles      = directoryInfo.GetFiles().Length;

            int countSelectedFolders = 0;
            int countAllFolders      = directoryInfo.GetDirectories().Length;

            FileInfoToLabel(NumberFormat.DigitNumber(sizeSelectedItem) + " из " + NumberFormat.DigitNumber(sizeAllItem) + "; файлов: " + countSelectedFiles + " из " + countAllFiles + "; папок: " + countSelectedFolders + " из " + countAllFolders);
        }
示例#3
0
        public void GetFoldersFiles(string directory)
        {
            Stopwatch stopWatch = new Stopwatch();

            stopWatch.Start();

            List <DirectoryList> directoryList = new List <DirectoryList>();
            DirectoryInfo        thisDirectory = new DirectoryInfo(directory);

            currentFolder = thisDirectory.Name.ToString();

            // if root
            rootDir    = thisDirectory.Root.ToString();
            currentDir = thisDirectory.FullName.ToString();

            if (rootDir != currentDir)
            {
                string   dirFolder  = Directory.GetParent(Directory.GetParent(directory).ToString()).ToString();
                DateTime dateFolder = Directory.GetCreationTime(dirFolder);

                directoryList.Add(new DirectoryList()
                {
                    tag        = "up",
                    directory  = dirFolder,
                    name       = "[..]",
                    type       = "",
                    size       = "",
                    atrributes = thisDirectory.Attributes
                });
            }

            try
            {
                // Get folders
                DirectoryInfo[] folders = thisDirectory.GetDirectories();
                foreach (DirectoryInfo folder in folders)
                {
                    directoryList.Add(new DirectoryList()
                    {
                        tag        = "folder",
                        directory  = folder.FullName,
                        name       = "[" + folder.Name + "]",
                        type       = "",
                        size       = "<папка>",
                        date       = Directory.GetCreationTime(folder.FullName).ToString(dateTimeFormat),
                        atrributes = folder.Attributes
                    });
                }

                // Get files
                FileInfo[] files = thisDirectory.GetFiles();
                foreach (FileInfo file in files)
                {
                    string ext = "";
                    try
                    {
                        if (file.Extension.Length > 0)
                        {
                            ext = file.Extension.Split('.')[1];
                        }
                    }
                    catch { }

                    directoryList.Add(new DirectoryList()
                    {
                        tag        = "file",
                        directory  = file.FullName,
                        name       = Path.GetFileNameWithoutExtension(file.FullName),
                        type       = " " + ext,
                        size       = NumberFormat.DigitNumber(file.Length),
                        date       = File.GetCreationTime(file.FullName).ToString(dateTimeFormat),
                        atrributes = file.Attributes
                    });
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
                return;
            }

            ImageList iconList = new ImageList();

            iconList.ColorDepth = ColorDepth.Depth32Bit;
            iconList.Images.Add(iconUp);
            iconList.Images.Add(iconFolder);
            iconList.Images.Add(iconUnknown);

            listViewDirectory.SmallImageList = iconList;
            listViewDirectory.Items.Clear();

            listViewDirectory.BeginUpdate();

            foreach (DirectoryList lineDirectoryList in directoryList)
            {
                string[]     item     = { lineDirectoryList.name, lineDirectoryList.type, lineDirectoryList.size, lineDirectoryList.date };
                ListViewItem listItem = new ListViewItem(item);
                listItem.Name = lineDirectoryList.directory;

                switch (lineDirectoryList.tag)
                {
                case "up":
                    listItem.ImageIndex = 0;
                    listItem.Tag        = "DirectoryUp";
                    break;

                case "folder":
                    listItem.ImageIndex = 1;
                    listItem.Tag        = lineDirectoryList.atrributes.ToString();
                    break;

                default:
                    listItem.ImageIndex = 2;
                    listItem.Tag        = lineDirectoryList.atrributes.ToString();
                    break;
                }
                listViewDirectory.Items.Add(listItem);
            }

            listViewDirectory.EndUpdate();

            // Set current dir label
            //labelDir.Text = currentDir;

            // Tread GetIcons
            directoryListVolatile = directoryList;
            //directoryList.Clear();

            //SetIcon();
            Thread setIconTread = new Thread(SetIcon);

            setIconTread.Start();
            //SetIcon();

            // Tread DriveInfo
            Thread dirveInfoThread = new Thread(GetDriveInfo);

            dirveInfoThread.Start();

            // Tread InfoFolder
            Thread folderInfoThread = new Thread(GetFolderInfo);

            folderInfoThread.Start();

            stopWatch.Stop();
            TimeSpan ts = stopWatch.Elapsed;

            labelDir.Text = ts.Milliseconds.ToString();
        }