如何对文件进行排序并将其移至其相应的目录(c#)

时间:2018-09-18 15:09:23

标签: split xelement

因此,我遇到的问题是,如果xml文件包含“ ONE”,则应将其移至贷方目录,否则应移至借方目录。这是我当前的解决方案:

private void SplitAndMoveCreditCamts(FileInfo f)
{      
   if (v.Elements().Contains(x => x.Value == "ONE"))
      WriteToDirectory(v, "ONE\\");    
   else    
      WriteToDirectory(v, "TWO\\");
}

它确实将文件移动到两个目录中。这意味着“ WriteToDirectory”方法正在工作,但是忽略了“ ONE”条件。我相信错误就在那里。

1 个答案:

答案 0 :(得分:4)

我认为您的问题属于元素行(v.Elements().Contains(x => x.Value == "ONE"))

最适合您的解决方案是制作两个单独的方法,一个和两个,分别调用您的SplitAndMoveONE

private void SplitAndMoveONE(FileInfo f)
        {
            XElement[] els = GetXmlMessages(f.Name);

            foreach (var v in els)
            {
                XNamespace ns = v.Name.Namespace;
                bool exists = v.Descendants(ns + "ONE")
                 .Select(item => item.Value);

                if (exists)
                    WriteToDirectory(v, "ONE\\");
                else
                    // give error message
            }
        }

命名空间对于在标签中查找元素至关重要。同样适用于两个。