如何根据C#中文件名中的前6个字母获取文件的完整路径?这有什么正则表达式吗?
我有一个500K +图像的文件夹。 所有图像都按照数据库列值命名。 我正在查询表格,根据列值我必须在文件夹中搜索特定文件。
如果列值为209050,则文件夹中将有一个文件,如209050.pdf或209050_12345.pdf。 209050将始终有一个图像。
请帮忙
答案 0 :(得分: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);
答案 1 :(得分:0)
以下内容将向您展示.jpg
中以209050
开头的所有C:\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();
}
}
}
这是我的目录:
这是输出:
这有帮助吗?