как читать все файлы внутри определенной папки - PullRequest
88 голосов
/ 30 апреля 2011

Я хочу прочитать все 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 ]

215 голосов
/ 30 апреля 2011
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.

.
21 голосов
/ 30 апреля 2011
using System.IO;

DirectoryInfo di = new DirectoryInfo(folder);
FileInfo[] files = di.GetFiles("*.xml");
13 голосов
/ 30 апреля 2011
using System.IO;

//...

  string[] files;

  if (Directory.Exists(Path)) {
    files = Directory.GetFiles(Path, @"*.xml", SearchOption.TopDirectoryOnly);
    //...
5 голосов
/ 15 марта 2012

Если вы хотите скопировать все текстовые файлы в одну папку, чтобы объединить и скопировать в другую папку, вы можете сделать это для достижения этого:

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());
      }   
    }
  }
}
5 голосов
/ 30 апреля 2011

Вы можете использовать метод DirectoryInfo.GetFiles:

FileInfo[] files = DirectoryInfo.GetFiles("*.xml");
1 голос
/ 09 июля 2018

Попробуйте это у меня работает ..

        var filePath = Server.MapPath("~/App_Data/");
        string[] filePaths = Directory.GetFiles(@filePath, "*.*");
0 голосов
/ 11 мая 2017
    using System.IO;
    string[] arr=Directory.GetFiles("folderpath","*.Fileextension");
      foreach(string file in arr)
       {

       }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...