从文件夹加载多个xml文档

时间:2011-08-10 18:32:05

标签: c# linq

一周前才开始使用C#。 开发适配器/程序以处理文件夹中的xml文档并将输出写入excel文件。 我能够完成任务 - 使用xml,xml.linq类。   - 现在我已经开始自动化这个过程。 (这样我可以专注于我的任务的第二部分,处理一组.DAT文件)

在上面的任务中,我一次读取每个文档,然后在类似类型的xml上“联合” - (其中一些被分成多个文件)然后处理它们。

我想用我的程序做的是将xml文档传输到共享文件夹(windows) - 我希望程序开始处理xml文件并将进程的输出写入excel文件

任何指针 - 关于寻找什么都会有很大的帮助。

           ************************(update)[ratna:11th Aug 2011,6AM IST]

            **********************************sample code**************
class FM
{
static void Main(string[] args)
         {

             FM LetsLoad = new FM();
             IEnumerable<XElement> loadedcustDoc = LetsLoad.LoadCustDocuments();

            Cust checkCustTrav = new Cust();
            checkCustTrav.CustTrav(loadedcustDoc);
            /*   to process the loaded documents and to output result to excel
            *
                      */

        //Console.ReadLine();
         }

        public IEnumerable<XElement> LoadCustDocuments()
        { 
            // Loading Customer **** Start***
            XDocument CustDoc1 = XDocument.Load(@"J:\dot\custtemp1.xml");
    XDocument CustDoc2 = XDocument.Load(@"J:\dot\custtemp2.xml");


            IEnumerable<XElement> CustEList1 = CustDoc1.Root.Descendants("Customer");
            IEnumerable<XElement> CustEList2 = CustDoc2.Root.Descendants("Customer");
            IEnumerable<XElement> CustEListComb = CustEList1.Union(CustEList2)
            return CustEListComb;
        }
 }  

** * ** * ** * 的** * ** * ** * * 示例代码结束 **** 谢谢大家提供的输入。 是的,我想看看添加文件的文件夹。 添加文档后,加载文档进行处理。 此处理由此示例中的Cust类处理。 LoadCustDocuments是我想要自动读取所有XML的方法,只加载文件名中带有“cust”的文件,将它们与“Union”组合成一个IEnumerable并返回进行处理。[假设这是最好的负载方式]

我将阅读所提供的输入,然后回复。

3 个答案:

答案 0 :(得分:0)

创建一个Windows服务,使用FileSystemWatcher知道何时加载文件添加到目录中。具体处理Created事件。注意通过网络加载的文件,并在整个文件完成复制之前触发Created事件。你需要使用一些东西来暂停你的线程直到它完成。

答案 1 :(得分:0)

我不确定问题究竟是什么...我怀疑你想知道如何在文件夹中有文件时获得某种通知......因为你可以使用FileSystemwatcher - 见{{3 }}

答案 2 :(得分:0)

您在寻找FileSystemWatcher班吗?

这适用于等待文件出现在文件夹中的情况。