如何在C#中使用Directory.GetFiles()添加多个文件?

时间:2019-02-11 13:03:54

标签: c# asp.net

这个问题可能之前曾被问过,但是我无法在单循环中传递我的方法需要的三个参数。我在该目录(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()中。

我看到很多问题,在此之前仅返回单个文件。 还有其他解决方法吗?

任何帮助者将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

因此,您有一个包含以下文件的目录:

  • Foo.xmlFoo.jpgFoo.tiff
  • Bar.xmlBar.jpgBar.tiff
  • Baz.xmlBaz.jpgBaz.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);
}
相关问题