我有一个客户希望能够使用自动增量系统(NNN.fileextension)将文件保存到特定目录,其中上传的第一个文件以名称“001”开头,第二个文件以“002”等等。这一切都很好,但是,我很难理解如何能够循环遍历目录中的现有文件,并根据前面指定的文件名模式找到上传的最后一个文件。
如何遍历文件,确定文件是否具有“NNN”模式(N代表数字)并获取要上传的最后一个文件?
答案 0 :(得分: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
答案 1 :(得分:0)
您可以使用Directory.GetFiles(string, string)接受文件的搜索模式作为第二个参数(问号?
充当单个字符占位符)。
因此,要找到最大ID,您应该遍历找到的文件,将文件名转换为整数值并选择最大值。
var maxId = Directory.GetFiles("w:\\", "???.fileextension")
.Select(file => int.Parse(Path.GetFileNameWithoutExtension(file)))
.Max();