如何在C#中逐个加载目录的文件?

时间:2011-08-23 13:43:49

标签: c# file-io

我想使用C#逐个加载所有xml文件。并且所有文件都在同一目录下。 你能给我一些样品吗?

由于 SUT

2 个答案:

答案 0 :(得分:9)

只需从内存中输入此内容,但这样做会让我相信:

DirectoryInfo di = new DirectoryInfo(PathToYourFolder);

foreach (FileInfo fi in di.GetFiles("*.xml")) 
{
    XmlDocument xmlDoc = new XmlDocument();
    xmlDoc.Load(fi.FullName);
}

如果您确实需要进入子文件夹,请进行此更改:

foreach (FileInfo fi in di.GetFiles("*.xml", SearchOption.AllDirectories))

答案 1 :(得分:2)

我不确定你对“1比1”的意思,但我想这就是你要找的。

var xmls = Directory.GetFiles(myPath, "*.xml", SearchOption.AllDirectories);
foreach (var file in xmls )
{
    using (var fileStream = new FileStream(file, FileMode.Open))
    {
        using (var reader = new StreamReader(fileStream))
        {
            reader.BaseStream.Seek(0, SeekOrigin.Begin);
            fileContent = reader.ReadToEnd();
        }
    }
}

xmlsmyPath中的所有文件,也是所有子文件夹中的所有文件,通过SearchOption,您可以定义是否需要所有文件或仅需要TopLevel文件。接下来,一个fileStream用于查找找到的文件的eeech,并使用流阅读器来读取整个内容。