用户将按照惯例命名图像文件名。例如, 01_343_UserDescription_987.jpg ,其中数字代码是常量,用户描述可以是任何内容。所以我可以做到以下几点:
foreach (...)
{
image[i].Source = new BitmapImage(
new Uri("C:/Images/0" + i + "_343_" + * + "_987", UriKind.Absolute));
}
是否有通配符或我是否可以这样做?
答案 0 :(得分:3)
URI必须指向一个确切的位置,而不是一些可以匹配一个或多个文件的通配符。您可以通过一个简单的额外步骤自己制作:
string[] files = Directory.GetFiles("C:/Images/", $"0{i}_343_*_987");
Uri uri = new Uri(files.Single(), UriKind.Absolute);
不确定是否需要这样的斜杠,如果是,请使用files.First().Replace('\\', '/')
。
答案 1 :(得分:2)
不,URI不能包含通配符。但是,您可以使用通配符来获取目录中遵循该模式的所有文件的列表:
string[] files = Directory.GetFiles("C:\\Images", "0?_343_*_987.jpg");
foreach (var file in files)
{
Uri uri = new Uri(file UriKind.Absolute);
...
}
请注意我在这里使用两个通配符!
答案 2 :(得分:1)