更新:
此代码的工作方式类似于常见的WindowsFormApplication文件资源管理器。
当您输入每个文件夹的ID时(每个文件和文件夹都有一个ID),它将显示其中的文件和文件夹。
我想要的是当用户进入“ .. ”控制台进行一步时 返回(父目录)。我的意思是在CMD中做“ cd .. ”这样的事情
此代码将在子文件夹中进行探索(及其正常),但我不知道如何返回到父文件夹(我知道我应该使用 Directory.GetParent ,我知道如何使用它,我只是想知道我应该把它放在代码中:)
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;
}
在这里你可以看到我添加的代码(注释代码),但它会完全崩溃,因为我的数组中没有id为“ .. ”的文件夹,它会说“索引超出了数组的范围。”
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,以防你想尝试。
我的问题:我使用此代码浏览子文件夹。我想知道如何进入父文件夹?
感谢所有程序员上次帮助过我。