как читать все файлы внутри определенной папки
Я хочу прочитать все xml-файлы внутри определенной папки в c# .net
XDocument doc2 = XDocument.Load((PG.SMNR.XMLDataSourceUtil.GetXMLFilePath(Locale, "Products/category/product.xml")));
у меня есть несколько продуктов в папки категории.. хотите зациклить папку и должны получить все имена xml-файлов продукта.
XDocument doc2 = XDocument.Load((PG.SMNR.XMLDataSourceUtil.GetXMLFilePath(Locale, "Products/category/x1.xml")));
7 ответов:
using System.IO; ... foreach (string file in Directory.EnumerateFiles(folderPath, "*.xml")) { string contents = File.ReadAllText(file); }
Примечание выше использует функцию .NET 4.0; в предыдущих версиях заменить
EnumerateFiles
СGetFiles
). Кроме того, заменитьFile.ReadAllText
С вашим предпочтительным способом чтения xml-файлов-возможноXDocument
,XmlDocument
или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); //...
можно использовать
DirectoryInfo.GetFiles
способ:FileInfo[] files = DirectoryInfo.GetFiles("*.xml");
Если вы хотите скопировать все текстовые файлы в одну папку сливать и копировать в другую папку, вы можете сделать это, чтобы достичь этого:
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()); } } } }