我只是想更改当前路径的目录并列出我感兴趣的所有文件/目录.vs 2010的默认目录位于./Projects/目录中。但是我按顺序执行这两个命令:
...
system ("cd ../../..");
system ("dir"); //This still lists in the command window, the default Projects directory
有什么建议吗?
答案 0 :(得分:2)
假设C#标签准确无误,这不是正确的方法。
查看Directory课程。具体来说是Directory.EnumerateFiles()
。
答案 1 :(得分:1)
对于“系统”调用的大多数实现,每次调用系统都在其自己的环境中运行,从父级继承,但不从先前对系统的调用中携带。您不能将状态从一个system()调用传递到另一个系统(如当前目录),每个都将在父进程的目录中启动。您需要调用一个同时运行“cd”和“dir”命令的系统,或者更改主进程的目录,然后列出文件。
Directory.SetCurrentDir应该注意更改目录,之后系统命令将按预期运行。
正如@Bobson所提到的那样,如果您想要的是一个可以在程序中实际使用的文件列表,那么EnumerateFiles方法就是您的选择。