【问题标题】:Directory.GetFiles search patternDirectory.GetFiles 搜索模式
【发布时间】:2012-03-13 06:51:54
【问题描述】:

我有一个客户希望能够将文件保存到具有自动增量系统(NNN.fileextension)的特定目录,其中上传的第一个文件以“001”的名称开头,第二个“002”等等。这一切都很好,但是,我很困惑如何能够遍历目录中的现有文件并找到基于前面指定的文件名模式上传的最后一个文件。

如何遍历文件,判断文件是否为“NNN”(N代表数字)的模式,获取最后上传的文件?

【问题讨论】:

    标签: asp.net search directory design-patterns getfiles


    【解决方案1】:

    您可以使用Directory.GetFiles(string, string),它接受文件搜索模式作为第二个参数(问号? 充当单字符占位符)。

    所以要找到最大 id,您应该遍历找到的文件,将文件名转换为整数值并选择最大值。

    var maxId = Directory.GetFiles("w:\\", "???.fileextension")
        .Select(file => int.Parse(Path.GetFileNameWithoutExtension(file)))
        .Max();
    

    【讨论】:

      【解决方案2】:

      您可以按创建日期订购,然后拿第一个。

      int maxFileId = 0;
              foreach (string file in Directory.GetFiles("c:\\"))
              {
                  try
                  {
                      string currentFile = System.IO.Path.GetFileName(file).Replace("." + System.IO.Path.GetExtension(file), "");
                      if (int.Parse(currentFile) > maxFileId)
                          maxFileId = int.Parse(currentFile);
                  }
                  catch
                  {
                  }
              }
              //maxFileId will give the last file
      

      【讨论】:

      • 确实如此,但是,可能有一段时间自动增量被关闭,如果文件名不是自动增量文件之一怎么办?
      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-12
      相关资源
      最近更新 更多