【问题标题】:Open multiple files with specific names打开多个具有特定名称的文件
【发布时间】:2016-02-05 18:15:23
【问题描述】:

我正在编写一个程序来计算 Flesch 分数。我想导入多个文件,分析它们,然后在控制台中输出解决方案。我怎样才能只读取起始名称为 "testcase" 的 .txt 文件? F.e. “testcase_text1.txt”。

【问题讨论】:

  • 你试过了吗?
  • 没有关于那些东西的真正线索。也许是这样的:string[] dirs = Directory.GetFiles(@"S:\work\Flesch_Reading_Ease\", "testcase*");
  • 您的问题的哪一部分有问题?你有什么代码,你卡在哪里了?
  • 您想一次打开多个 .txt 文件,是吗?您是否搜索过解决方案或尝试过自己的解决方案?
  • 我搜索了一个解决方案,但没有真正得到它。

标签: c# file document


【解决方案1】:

你可以通过这样做得到一个数组中的所有文件名

string[] files = System.IO.Directory.GetFiles(source_folder, "testcase*.txt");

然后只需访问您想要的任何文件并进行处理。 您可以使用 EnumerateFiles 而不是 GetFiles 并在获取文件后立即开始处理。

【讨论】:

    【解决方案2】:

    我建议使用 LinqDirectory.EnumerateFiles 来获取初始文件以继续:

      var source = Directory
        .EnumerateFiles(@"C:\MyFiles", "testcase*.txt")
        .Select(file => new {
           Name = Path.GetFileName(file),
           Score = FleschKincaidScore(file) //TODO: implement FleschKincaidScore 
         })
        .OrderBy(item => item.Score) // let's sort the records
        .ThenBy(item => item.Name)
        .Select(item => String.Format("File {0} has score {1}", item.Name, item.Score));
    
      // Final report
      Console.Write(String.Join(Environment.NewLine, source));
    

    【讨论】:

      【解决方案3】:
      for (int i = 0; i < 10; i++) {
          StreamReader sr = File.OpenText("testcase_text" + i + ".txt");
          // process the file...
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-20
        • 1970-01-01
        • 2021-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多