Как отсортировать файлы и перейти в их респектабельный каталог (c #) - PullRequest
0 голосов
/ 18 сентября 2018

Итак, у меня проблема в том, что если XML-файл содержит «ОДИН», то он должен перейти в каталог кредитов, в противном случае перейти в каталог дебетов.Вот мое текущее решение:

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

Он перемещает файлы только в каталог TWO.Это означает, что метод «WriteToDirectory» работает, но игнорирует условие «ONE».Я считаю, что ошибка лежит там.

1 Ответ

0 голосов
/ 18 сентября 2018

Я думаю, что ваша проблема лежит в пределах элементной линии (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
            }
        }

Пространство имен жизненно важно для поиска элементов в вашем теге.То же касается и ДВУХ.

...