C# 搜索并匹配具有前6个字符的pdf文件,然后在windows默认程序中打开它

C# 搜索并匹配具有前6个字符的pdf文件,然后在windows默认程序中打开它,c#,C#,我不熟悉C#和编程。我会尽量问清楚这个问题 我把这些pdf文件放在一个文件夹中,我想做的是把pdf文件的名称与字符串的前6个字母匹配,如果它存在,我想在windows默认程序中打开它。 例如,我将这些文件放在一个文件夹中,每个pdf文件上的名称超过6个字母 87163437KJH.pdf 479562087gd.pdf 6489754378.pdf 571283874hgj.pdf 17236897467hdgr.pdf gefreg6834.pdf 我有这个字符串“871634e3khss

我不熟悉C#和编程。我会尽量问清楚这个问题

我把这些pdf文件放在一个文件夹中,我想做的是把pdf文件的名称与字符串的前6个字母匹配,如果它存在,我想在windows默认程序中打开它。 例如,我将这些文件放在一个文件夹中,每个pdf文件上的名称超过6个字母

  • 87163437KJH.pdf
  • 479562087gd.pdf
  • 6489754378.pdf
  • 571283874hgj.pdf
  • 17236897467hdgr.pdf
  • gefreg6834.pdf
我有这个字符串“871634e3khsskdjfh”,我想取前6个字母“871634”,搜索与前6个字母匹配的pdf文件。如果它存在,我想在windows默认应用程序中打开它。在本例中,“871634”与87163437KJH.pdf文件匹配,应打开该文件

另一个例子; 我有这个字符串“gefreg6df2352345”,所以字符串的前6个字母是“gefreg”,它与gefreg6834.pdf文件匹配,所以它应该打开该pdf

我尝试过使用这种方法,但我一直坚持把东西放在一起,请帮忙

string[] files = System.IO.Directory.GetFiles(@"J:\", txt_partnum.Text.Substring(0,6) +"*"+".pdf", System.IO.SearchOption.TopDirectoryOnly);
            if (files.Length > 0)
            {
                Process.Start(@"J:\" + txt_partnum.Text.Substring(0,6)+"*"+".pdf");

            }
            else
            {
                MessageBox.Show("Drawing doesnot exist in SE Drive !");
            }

你就快到了。只需对文件进行迭代:

string[] files = System.IO.Directory.GetFiles(@"J:\", txt_partnum.Text.Substring(0,6) +"*"+".pdf", System.IO.SearchOption.TopDirectoryOnly);
foreach (string file in files)
{
   Proccess.Start(file);
}

根据您对OP需求的解释方式,您可能只想打开第一个
if(files.Any()){Process.Start(files.First());}