C# 如何按文件名顺序合并文件

C# 如何按文件名顺序合并文件,c#,C#,我想用iTextSharp创建一个新的pdf文件。我所有的代码都正常工作,但新文件没有按页码排序 您能告诉我如何修改以下代码以创建按文件名(页码)排序的新pdf文件吗 foreach(目录.GetFiles(路径)中的var文件) { 读卡器=新的PDF读卡器(文件); 对于(int i=0;i

我想用iTextSharp创建一个新的pdf文件。我所有的代码都正常工作,但新文件没有按页码排序

您能告诉我如何修改以下代码以创建按文件名(页码)排序的新pdf文件吗

foreach(目录.GetFiles(路径)中的var文件)
{
读卡器=新的PDF读卡器(文件);
对于(int i=0;i
文件夹包含102个文件。文件名为第1页、第2页、第3页

我希望输出的页面是有序的


提前非常感谢

因为您需要按数字顺序排序(即如果按字母顺序排序,
Page_15
Page_2
之前),因此您需要从文件名中提取,例如:

// Needs some work but you get the idea
private int GetNumberFromFilename(string filename)
{
    var baseName = Path.GetFileName(filename);
    var parts = filename.Split('_','.');
    if(int.TryParse(parts[1], out var number))
    {
        return number;
    }
    return 0;
}
现在,您可以按如下方式获取已排序的文件:

var files = Directory.GetFiles(path)
    .Where(f => Path.GetFileName(f).StartsWith("Page_")) //filter out non matching files
    .OrderBy(GetNumberFromFilename);

你在用哪个图书馆?
var files = Directory.GetFiles(path)
    .Where(f => Path.GetFileName(f).StartsWith("Page_")) //filter out non matching files
    .OrderBy(GetNumberFromFilename);