0

如何根据 C# 文件名中的前 6 个字母获取文件的完整路径?有任何正则表达式吗?

我有一个包含 500K+ 图像的文件夹。所有图像都根据数据库列值命名。我正在查询表并根据列值在文件夹中搜索特定文件。

如果列值为 209050,则文件夹中将有一个文件,如 209050.pdf 或 209050_12345.pdf。209050 将始终存在一个图像。

请帮忙

4

2 回答 2

1
var files = Directory.EnumerateFiles(@"C:\MyRootDir", "209050*", SearchOption.AllDirectories);

这将返回一个可枚举的字符串。每个字符串将是其名称与指定模式匹配的文件的完整路径,在这种情况下,任何名称以“209050”开头的文件,与扩展名无关。这甚至会在文件夹 MyRootDir 的子目录中搜索。

如果您只想过滤jpg文件,请相应地更改第二个参数。

var files = Directory.EnumerateFiles(@"C:\MyRootDir", "209050*.jpg", SearchOption.AllDirectories);

如果您不使用 .Net Framework 4 或 4.5,则可以改用该GetFiles方法。

var files = Directory.GetFiles(@"C:\MyRootDir", "209050*.jpg", SearchOption.AllDirectories);
于 2012-07-09T13:28:33.633 回答
0

以下将显示以in.jpg开头的所有文件:209050C:\MyDirectory

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] myFiles = Directory.GetFiles(@"C:\MyDirectory");

            foreach (var x in myFiles)
            {
                string[] splitName = x.Split('\\');
                string fileName = splitName[splitName.Length - 1];

                if (fileName.StartsWith("209050") && fileName.EndsWith(".jpg"))
                {
                    Console.WriteLine(x);
                }
            }

            Console.ReadLine();
        }
    }
}

这是我的目录:

我的目录

这是输出:

输出

这有帮助吗?

于 2012-07-09T13:01:50.097 回答