如何读取特定文件夹中的所有文件

时间:2011-04-30 07:55:03

标签: c# xml file

我想阅读c#.net

中特定文件夹中的所有xml文件
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 个答案:

答案 0 :(得分:213)

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

注意以上使用.NET 4.0功能;在以前的版本中,将EnumerateFiles替换为GetFiles)。另外,将File.ReadAllText替换为您首选的阅读xml文件的方式 - 可能是XDocumentXmlDocumentXmlReader

答案 1 :(得分:21)

using System.IO;

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

答案 2 :(得分:13)

using System.IO;

//...

  string[] files;

  if (Directory.Exists(Path)) {
    files = Directory.GetFiles(Path, @"*.xml", SearchOption.TopDirectoryOnly);
    //...

答案 3 :(得分:5)

您可以使用DirectoryInfo.GetFiles方法:

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

答案 4 :(得分:5)

如果您要复制一个文件夹中的所有文本文件以合并并复制到另一个文件夹,您可以这样做以实现:

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 :(得分:1)

试试看,它对我有用。

        var filePath = Server.MapPath("~/App_Data/");
        string[] filePaths = Directory.GetFiles(@filePath, "*.*");

答案 6 :(得分:-1)

    using System.IO;
    string[] arr=Directory.GetFiles("folderpath","*.Fileextension");
      foreach(string file in arr)
       {

       }