यह प्रश्न पहले भी पूछा जा सकता है, हालाँकि मैं एकल लूप में तीन मापदंडों को पारित करने में सक्षम नहीं हूँ, जिनकी मुझे अपनी विधि के लिए आवश्यकता है। मुझे उस निर्देशिका (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
Rex Jones 11 फरवरी 2019, 16:03

1 उत्तर

सबसे बढ़िया उत्तर

तो आपके पास एक निर्देशिका है जिसमें इस तरह की फाइलें हैं:

  • 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);
}
2
CodeCaster 11 फरवरी 2019, 13:12