1

我只是想更改当前路径的目录并列出我感兴趣的所有文件/目录。vs 2010 的默认目录位于 ./Projects/ 目录中。但我按以下顺序执行这两个命令:

 ...
system ("cd ../../..");
system ("dir"); //This still lists in the command window, the default Projects directory

有什么建议吗?

4

2 回答 2

2

假设 C# 标记是准确的,这不是正确的方法。

查看目录类。具体来说Directory.EnumerateFiles()

于 2013-06-14T14:35:07.197 回答
1

对于“系统”调用的大多数实现,对系统的每个调用都在其自己的环境中运行,从父级继承,但不是从先前对系统的调用中携带的。您不能将状态从一个 system() 调用传递到另一个调用,例如当前目录,每个都将从父进程的目录开始。您需要调用同时运行“cd”和“dir”命令的系统,或者更改主进程的目录,然后列出文件。

Directory.SetCurrentDir应该注意更改目录,之后系统命令将按预期运行。

正如@Bobson 提到的那样,如果您想要的是您可以在程序中实际使用的文件列表,那么 EnumerateFiles 方法就是要走的路。

于 2013-06-14T14:46:34.363 回答