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

ram*_*ram 92 c# xml file

我想读取c#.net中特定文件夹中的所有xml文件

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

我有类别文件夹中的多个产品..想要循环文件夹,并应获取所有产品xml文件名.

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

Mar*_*ell 227

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

请注意,上面使用.NET 4.0功能; 在以前的版本中替换EnumerateFilesGetFiles).另外,File.ReadAllText用你喜欢的读取xml文件的方式替换- 或许XDocument,XmlDocument或者XmlReader.

  • @ram - 我在答案中解释了这一点; 请阅读示例下的文字...... (8认同)
  • "使用System.IO;" 辉煌!!为什么更多的人不会给这个?试图找到人们正在谈论的内容可能会非常烦人 (4认同)

Adi*_*Adi 22

using System.IO;

DirectoryInfo di = new DirectoryInfo(folder);
FileInfo[] files = di.GetFiles("*.xml");
Run Code Online (Sandbox Code Playgroud)


小智 13

using System.IO;

//...

  string[] files;

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


Cha*_*mar 10

试试这个它对我有用..

语法是 Directory.GetFiles(string path, string searchPattern);

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

此代码将返回文件App_Data夹内的所有文件。

第二个参数指示带有文件扩展名的搜索模式,其中第一个 * 用于文件名,第二个用于文件格式或文件扩展名,如 (*.png - 任何具有 .png 格式的文件名。


try*_*dis 6

您可以使用以下DirectoryInfo.GetFiles方法:

FileInfo[] files = DirectoryInfo.GetFiles("*.xml");
Run Code Online (Sandbox Code Playgroud)


小智 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());
      }   
    }
  }
}
Run Code Online (Sandbox Code Playgroud)