问题背景
在C#的使用过程中,在一个文件夹中有很多日期形式的图片,文件名称例如:20220331-102820-220.JPG。这些图片的名称是日期的格式,每张图片之间有一秒的时间间隔,需要通过C#找到对应时间的图片文件。文件名称后面的几位,如“-220”是多少不重要,所以计划通过通配符的形式根据文件名前面的日期格式获取对应的文件的全名。然后拼接出文件的绝对路径即可删除文件。
解决方法
可以先通过C#中获取时间的方式将文件名称的前缀处理出来。例如把文件的前缀处理成“20220331-102820”的形式。然后通过下面的代码获取文件的全名。
string filepath = @"D:\泡沫图片";
string filename = "20220331-102820";
string[] searchfile = Directory.GetFiles(filepath, filename + "*.JPG")
.Select(path => Path.GetFileName(path))
.ToArray();
匹配到的所有符合文件名称的文件存放在searchfile数组中,当只有一个文件时,数组里面就一个对象。
此时searchfile数组中的索引为0的位置的对象为“20220331-102820-220.JPG”。
此时将获取的文件名称加上文件夹绝对路径的前缀就是文件的绝对路径。
想要删除文件需要通过下面的形式
string deleteImagePath = filepath +"\\"+ searchfile[0];
if (File.Exists(deleteImagePath))
{
File.Delete(deleteImagePath);
}
通过这种形式即可删除对应的文件。