【问题标题】:Read multiple .txt files at once with console command使用控制台命令一次读取多个 .txt 文件
【发布时间】:2016-02-09 20:15:39
【问题描述】:

您好,我正在编写一个控制台应用程序,它读取 .txt 文件的文本,然后计算 Flesch 分数(阅读文本的难易程度)。它已经可以通过输入路径和一些参数 f.e. 由控制台启动。 -f "文件名" 或 -e 用于英文。现在我想使用命令-f "testfile*.txt 读取多个文本文件。 * 表示在 f.e. 之后写什么无关紧要。枚举。如何使用控制台命令实现这一点?如果我对编程有点陌生,请纠正我:)

这是我的做法:

string[] parameters = new string[] { "-f", "-e", "-g" };

Flesch_Reading_Ease.FleschScore.Language lang = FleschScore.Language.Undefined;
string filename = "";
        foreach (string arg in args)
        {
            switch (arg.Trim().ToLower())
            {
                case "-e":
                    lang = Flesch_Reading_Ease.FleschScore.Language.English;
                    break;

                case "-g":
                    lang = Flesch_Reading_Ease.FleschScore.Language.German;
                    break;

                case "-f":
                    break;

                default:
                    {                            
                        if (File.Exists(arg))
                            filename = arg;
                    }
                    break;
            }
        }

【问题讨论】:

标签: c# command-line-arguments


【解决方案1】:

如果您使用Directory.GetFiles 方法,它将返回与通配符匹配的文件列表:

string[] files = Directory.GetFiles(folder, arg);

其中folder 是您正在查看的目录的名称。您必须假设当前文件夹为“。”或从输入参数中拆分路径。

然后你可以遍历这个列表:

foreach (var file in files)
{
    // Do your processing
}

【讨论】:

  • 那么当我只使用string[] files = Directory.GetFiles(@"C:\myFiles", "*.txt", SearchOption.AllDirectories); 时,我应该在代码的哪个位置实现foreach 循环?
  • @user5462581 你现在在哪里处理filename
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 1970-01-01
  • 2021-10-29
  • 2016-06-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多