Я пытался добиться эффекта следующей страницы в консоли C #, когда писал все содержимое массивов. Ну, это работает без проблем, однако, для того, чтобы заставить это работать, я использовал исключения (которыми я действительно не горжусь). Я ищу способ сделать это без исключений.
using
операторов (я не знаю, какие из них я использовал для этого кода):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
using System.Threading;
using System.Text.RegularExpressions;
Эта часть в основном предназначена для получения имен некоторых файлов из папки. Это только для дополнительной информации и может быть пропущено:
string scLoc = AppDomain.CurrentDomain.BaseDirectory + @"shortcuts";
string[] directory = Directory.GetFiles(scLoc);
foreach (var filed in directory)
{
System.IO.File.Move(filed, filed.ToLowerInvariant());
}
string[] file = Directory.GetFiles(scLoc).Select(System.IO.Path.GetFileNameWithoutExtension).ToArray();
foreach (string dir in directory)
{
}
Это проблемная часть:
List<string> prgList = new List<string>();
foreach (string fdir in file)
{
prgList.Add(fdir);
}
string[] prgListArr = prgList.ToArray();
UInt16 fileAmoutToReach = 0;
UInt16 prgName = 0;
while (fileAmoutToReach <= file.Length) //gotta fix this
{
try
{
for (UInt16 i = Convert.ToUInt16(Console.CursorTop); i < Convert.ToUInt16(Console.WindowHeight - 1); i = Convert.ToUInt16(Console.CursorTop))
{
Console.WriteLine(prgListArr[prgName]);
prgName++;
fileAmoutToReach++;
}
}
catch (Exception)
{
Console.Write("Press any key to continue");
inputedKey = Console.ReadKey(true);
break;
}
Console.Write("Press any key to resume the listing");
inputedKey = Console.ReadKey(true);
if (inputedKey.Key == ConsoleKey.Escape)
{
break;
}
Console.Clear();
}