cómo leer todos los archivos dentro de una carpeta particular

Quiero leer todos los archivos xml dentro de una carpeta en particular en c # .net

XDocument doc2 = XDocument.Load((PG.SMNR.XMLDataSourceUtil.GetXMLFilePath(Locale, "Products/category/product.xml"))); 

Tengo varios productos en la carpeta de categorías. Quiero hacer un bucle en la carpeta y debería obtener todos los nombres de los archivos xml del producto.

 XDocument doc2 = XDocument.Load((PG.SMNR.XMLDataSourceUtil.GetXMLFilePath(Locale, "Products/category/x1.xml"))); 

 using System.IO; ... foreach (string file in Directory.EnumerateFiles(folderPath, "*.xml")) { string contents = File.ReadAllText(file); } 

Tenga en cuenta que lo anterior usa una característica de .NET 4.0; en versiones anteriores, reemplace EnumerateFiles con GetFiles ). Además, reemplace File.ReadAllText con su forma preferida de leer archivos xml, tal vez XDocument , XmlDocument o un XmlReader .

 using System.IO; DirectoryInfo di = new DirectoryInfo(folder); FileInfo[] files = di.GetFiles("*.xml"); 
 using System.IO; //... string[] files; if (Directory.Exists(Path)) { files = Directory.GetFiles(Path, @"*.xml", SearchOption.TopDirectoryOnly); //... 

Puede usar el método DirectoryInfo.GetFiles :

 FileInfo[] files = DirectoryInfo.GetFiles("*.xml"); 

Si está buscando copiar todos los archivos de texto en una carpeta para fusionar y copiar a otra carpeta, puede hacer esto para lograr eso:

 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace HowToCopyTextFiles { class Program { static void Main(string[] args) { string mydocpath=Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); StringBuilder sb = new StringBuilder(); foreach (string txtName in Directory.GetFiles(@"D:\Links","*.txt")) { using (StreamReader sr = new StreamReader(txtName)) { sb.AppendLine(txtName.ToString()); sb.AppendLine("= = = = = ="); sb.Append(sr.ReadToEnd()); sb.AppendLine(); sb.AppendLine(); } } using (StreamWriter outfile=new StreamWriter(mydocpath + @"\AllTxtFiles.txt")) { outfile.Write(sb.ToString()); } } } } 

Prueba esto, me está funcionando …

  var filePath = Server.MapPath("~/App_Data/"); string[] filePaths = Directory.GetFiles(@filePath, "*.*"); 
  using System.IO; string[] arr=Directory.GetFiles("folderpath","*.Fileextension"); foreach(string file in arr) { }