c#的一个控制台程序能不能生成三个不同功能的exe程序呢?该怎么处理

c#的一个控制台程序能不能生成三个不同功能的exe程序呢?
在一个控制台程序中包含实现以下功能的代码,
1.遍历某个,读取这个目录下的目录和文件全路径,并写到一个 txt 文件中
2.复制文件,使用 C# 实现文件复制功能
3.过滤文件,目录下,有txt文件,有jpg图片,或者有 zip 文件,把其中的文件按类型分在不同的目录下
分别实现三个 控台 EXE 程序。

三个EXE程序分别可以这样用:

1.生成 DirFileTreeInfo.exe
所遍历的目录通过参数指定
比如,要记录 D:盘下 games 目录中的内容,把读取到的 信息,写入到D:\gamesinfo.txt
.\DirFileTreeInfo.exe -d D:\games -o D:\gamesinfo.txt

2.生成 CopyFile.exe
所复制的文件和目标位置,通过参数指定
从D盘复制目录 games 到E盘
.\CopyFile.exe D:\games E:\games\

3.生成 PickFile.exe
所过滤的文件和目标位置,通过参数指定
比如:把目录 D:\games 下的 png 图片 复制到 D:\gamespng\ 下
\PickFile.exe -d D:\games -t png -o D:\gamespng
------解决方案--------------------
那你就把这个程序复制3份(3个Console工程),然后各取所需呗。

难道说你不会删代码?
------解决方案--------------------
一个project只应有一个主输出(exe或者dll或其他),一个solution可以包含多个project。
你只需要建立3个project,把输出文件夹调整到同一目录即可。
------解决方案--------------------
void Main(string[] args)
{
    switch args[0]
    {
        case "-a":
            功能1的代码;
            break;
        case "-b":
            功能2的代码;
            break;
        case "-c":
            功能3的代码;
            break;        
    }
}
------解决方案--------------------
因为是三个应用程序,所以你就需要写三个控制台程序分别实现,下面是DirFileTreeInfo.exe的代码,用的时候直接调用cmd就可以了“..\..\DirFileTreeInfo.exe -d D:\games -o D:\gamesinfo.txt”,其中..\..\DirFileTreeInfo.exe要用绝对路径;对于CopyFile.exe和PickFile.exe,你自己参考着写写吧。
另外,就http://bbs.csdn.net/topics/390844819这个帖子而言,是因为你在使用args时没有传递参数造成的,所以在用cmd时,要正确传递参数

static void Main(string[] args)
        {
            if (args.Count() == 4)
            {
                string param1 = args[0];
                string path1 = args[1];
                string param2 = args[2];
                string path2 = args[3];
                if (param1 == "-d" && param2 == "-o")
                {
                    string[] dics = Directory.GetDirectories(path1);
                    string[] files = Directory.GetFiles(path1);
                    using (StreamWriter sw = new StreamWriter(path2))
                    {
                        foreach (string d in dics)
                        {
                            sw.WriteLine(d);
                        }
                        foreach (string f in files)
                        {
                            sw.WriteLine(f);
                        }
                        sw.Close();
                    }
                }