转到使用c#console编写的文件资源管理器中的父文件夹

时间:2017-08-30 13:41:35

标签: c# console-application file-browser

更新:

此代码的工作方式类似于常见的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,以防你想尝试。

我的问题:我使用此代码浏览子文件夹。我想知道如何进入父文件夹?

感谢所有程序员上次帮助过我。

0 个答案:

没有答案