这个问题可能之前曾被问过,但是我无法在单循环中传递我的方法需要的三个参数。我在该目录(xml,jpg,tiff)(混合)中拥有数千个文件。
这就是我想要得到的。
protected void btn_Click(object sender, EventArgs e)
{
var path = @"d:\xmlfiles";
foreach (var file in Directory.GetFiles(path))
{
ProcessFile(file,param2,param3);
}
}
static void ProcessFile(string file_xml, string file_jpg, string file_tiff)
{
// do processing here...
//Adding data to sql
}
我尝试了Path.GetExtension
,但只给出了扩展名。我必须传递文件名,并且逻辑位于方法Processfile()
中。
我看到很多问题,在此之前仅返回单个文件。 还有其他解决方法吗?
任何帮助者将不胜感激。谢谢。
答案 0 :(得分:2)
因此,您有一个包含以下文件的目录:
Foo.xml
,Foo.jpg
,Foo.tiff
Bar.xml
,Bar.jpg
,Bar.tiff
Baz.xml
,Baz.jpg
,Baz.tiff
您想一起处理同名文件。然后为什么不选择并枚举一个扩展名,并重建随附的文件名:
foreach (var xmlFile in Directory.GetFiles(path, "*.xml"))
{
var extensionLess = Path.GetFilenameWithoutExtension(xmlFile);
var jpgFile = Path.Combine(path, extensionLess + ".jpg");
var tiffFile = Path.Combine(path, extensionLess + ".tiff");
ProcessFile(xmlFile, jpgFile, tiffFile);
}