0

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

如何遍历文件,确定文件是否具有“NNN”模式(N代表数字)并获取要上传的最后一个文件?

4

2 回答 2

0

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

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
于 2012-03-13T06:53:47.687 回答
0

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

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

var maxId = Directory.GetFiles("w:\\", "???.fileextension")
    .Select(file => int.Parse(Path.GetFileNameWithoutExtension(file)))
    .Max();
于 2012-03-13T07:36:38.303 回答