예제 #1
0
        private void ShowItemInfo(int itemIdx)
        {
            string item = directoryItems[itemIdx];

            if (item == "...")
            {
                CCommon.ShowLineInPosition(left + 1, top + height - 3, new string(' ', width - 2), ConsoleColor.DarkBlue, ConsoleColor.White);
                return;
            }

            string itemInfoLine = "";

            if (CCommon.IsDir(item))
            {
                long dirSize       = CCommon.GetFolderSizeInBytes(item);
                long numberOfFiles = CCommon.GetNumberOfFilesInFolder(item);
                itemInfoLine = $"size: {dirSize}  num of files: {numberOfFiles}";
            }

            if (CCommon.IsFile(item))
            {
                FileInfo fileInfo = new FileInfo(item);
                long     fileSize = fileInfo.Length;
                itemInfoLine = $"size: {fileSize}";
            }

            itemInfoLine = itemInfoLine.PadRight(width - 2, ' ');
            CCommon.ShowLineInPosition(left + 1, top + height - 3, itemInfoLine, ConsoleColor.DarkBlue, ConsoleColor.White);
        }
예제 #2
0
        private void ShowAnItem(int i)
        {
            int    idx      = start + i;
            string itemLine = prepareItemLine(idx);
            bool   isSelect = (idx) == current;

            bool isDir  = CCommon.IsDir(directoryItems[idx]);
            bool isFile = CCommon.IsFile(directoryItems[idx]);

            ConsoleColor tmp = Console.ForegroundColor;

            if (isDir)
            {
                Console.ForegroundColor = ConsoleColor.White;
            }
            if (isFile)
            {
                Console.ForegroundColor = ConsoleColor.Green;
            }

            ShowLineInPosition(left + 1, top + 4 + i, itemLine, isSelect);
            if (isSelect)
            {
                ShowItemInfo(idx);
            }
            Console.ForegroundColor = tmp;
        }
예제 #3
0
        public void ProcessCurrentItem()
        {
            string selectedItem = directoryItems[current];

            if (CCommon.IsDir(selectedItem))
            {
                changeDir();
            }
            else
            {
                Process.Start(selectedItem);
            }
        }
예제 #4
0
        private CFileInfo Get_File_Info(string filePath)
        {
            bool isDir = CCommon.IsDir(filePath);

            CFileInfo file_info = new CFileInfo();

            file_info.name = System.IO.Path.GetFileName(filePath);

            file_info.extOrDir = System.IO.Path.GetExtension(filePath);
            if (isDir)
            {
                file_info.extOrDir = "Dir";
            }

            if (!isDir)
            {
                file_info.size = new FileInfo(filePath).Length;
            }
            return(file_info);
        }
예제 #5
0
        public void ShowSizeOfCurrentItem()
        {
            string currentLine       = prepareItemLine(current, true);
            int    lineNumberInPanel = current - start;
            bool   isDir             = CCommon.IsDir(directoryItems[lineNumberInPanel]);
            bool   isFile            = CCommon.IsFile(directoryItems[lineNumberInPanel]);

            ConsoleColor tmp = Console.ForegroundColor;

            if (isDir)
            {
                Console.ForegroundColor = ConsoleColor.White;
            }
            if (isFile)
            {
                Console.ForegroundColor = ConsoleColor.Green;
            }
            ShowLineInPosition(left + 1, top + 4 + lineNumberInPanel, currentLine, true);
            Console.ForegroundColor = tmp;
        }
예제 #6
0
        string prepareItemLine(int idx, bool needSizeForFolder = false)
        {
            string    currentItemFullName = directoryItems[idx];
            CFileInfo fInfo = Get_File_Info(currentItemFullName);

            string name = System.IO.Path.GetFileNameWithoutExtension(fInfo.name);

            if (name.Length > 22)
            {
                name = name.Substring(0, 19) + "...";
            }
            while (name.Length < 22)
            {
                name += " ";
            }

            string ext = fInfo.extOrDir;

            if (ext.StartsWith("."))
            {
                ext = ext.Remove(0, 1);
            }
            while (ext.Length < 3)
            {
                ext += " ";
            }

            string size = fInfo.size.ToString();

            if (needSizeForFolder & CCommon.IsDir(currentItemFullName))
            {
                size = CCommon.GetFolderSizeInBytes(currentItemFullName).ToString();
            }

            return(name + " " + ext + " " + String.Format("{0,10}", size));
        }