ОБНОВЛЕНО:
Этот код будет работать как обычный проводник файлов WindowsFormApplication.
Когда вы вводите идентификатор для каждой папки (у каждого файла и папки будет идентификатор), в нем будут отображаться файлы и папки.
Я хочу, чтобы пользователь входил в консоль «..» назад на один шаг (родительский каталог). Я имею в виду сделать что-нибудь вроде "cd .." в CMD
Этот код будет исследовать дочерние папки (и все в порядке), но я не знаю, как вернуться в родительскую папку (я знаю, что должен использовать Directory.GetParent strong > и я знаю, как его использовать, я просто хочу знать, где мне его поместить в коде):
while (true)
{
var select2 = Convert.ToInt32(Console.ReadLine());
var dirDir = Directory.GetDirectories(dirDrive[select2]);
var fileDir = Directory.GetFiles(dirDrive[select2]);
for (var j = 0; j < dirDir.Length; j++)
Console.WriteLine("{0})\t{1}", j, Path.GetFileName(dirDir[j].TrimEnd(Path.DirectorySeparatorChar)));
for (var k = dirDir.Length; k < fileDir.Length; k++)
Console.WriteLine("{0})\t{1}", k, Path.GetFileName(fileDir[k]));
dirDrive = dirDir;
}
Здесь вы можете увидеть коды, которые я добавил (закомментированные коды), но он выйдет из строя, потому что у меня нет папки с идентификатором «..» в моем массиве, и он скажет «Индекс был вне границ массива ".
while (true)
{
var select2 = Convert.ToInt32(Console.ReadLine());
//if (Convert.ToString(select2) != "..")
//{
var dirDir = Directory.GetDirectories(dirDrive[select2]);
var fileDir = Directory.GetFiles(dirDrive[select2]);
for (var j = 0; j < dirDir.Length; j++)
Console.WriteLine("{0})\t{1}", j, Path.GetFileName(dirDir[j].TrimEnd(Path.DirectorySeparatorChar)));
for (var k = dirDir.Length; k < fileDir.Length; k++)
Console.WriteLine("{0})\t{1}", k, Path.GetFileName(fileDir[k]));
dirDrive = dirDir;
//}
//else
//{
// var dirDir = Directory.GetDirectories(Path.GetDirectoryName(dirDrive[select2]));//Error occurs here
// var fileDir = Directory.GetFiles(dirDrive[select2]);
// for (var j = 0; j < dirDir.Length; j++)
// Console.WriteLine("{0})\t{1}", j, Path.GetFileName(dirDir[j].TrimEnd(Path.DirectorySeparatorChar)));
// for (var k = dirDir.Length; k < fileDir.Length; k++)
// Console.WriteLine("{0})\t{1}", k, Path.GetFileName(fileDir[k]));
// dirDrive = dirDir;
//}
}
Это весь код: pastebin, на случай, если вы захотите попробовать.
МОЙ ВОПРОС: я использую этот код для просмотра дочерних папок. Я хочу знать, как я могу попасть в родительскую папку?
Спасибо всем программистам, которые помогли мне в прошлый раз.
Here i added this lines for the purpose but it will crash and say "Index was outside the bounds of the array."
На какой строке? - person mjwills   schedule 30.08.2017select2
?dirDrive.Count()
? - person mjwills   schedule 30.08.2017while{ }
как я могу вернуться на один шаг назад, если пользователь набрал 999. - person DewinaTwice   schedule 30.08.2017