传递XML标记值以用作搜索模式

时间:2013-10-05 22:04:59

标签: c#

下面是我的代码,假设要执行以下操作:

  1. 提取XML标记值
  2. 将其作为搜索图标传递
  3. 找到匹配模式(基于此文件名中的标记值)
  4. 将其复制到C:\ MR
  5. 代码:

    static void Main(string[] args)
    {
    
        XmlDocument xml = new XmlDocument();
        xml.Load(@"C:\Temp\XML\BBG_20001.xml");
    
        XmlNodeList xnList = xml.SelectNodes("/FileDump/Message/Attachment");
        foreach (XmlNode xn in xnList)
        {
            string FileName = xn["FileName"].InnerText;
            string FileID = xn["FileID"].InnerText;
        }
    }
    
    public void FileCopy(string[] args)
    {
        string fileName = "";
    
        string sourcePath = @"C:\temp\MR\";
        string targetPath = @"C:\MR";
    
    
        string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
        string destFile = System.IO.Path.Combine(targetPath, fileName);
    
        string pattern = @"FileName";
        var matches = Directory.GetFiles(@"C:\temp\MR\")
            .Where(path => Regex.Match(path, pattern).Success);
    
        foreach (string file in matches)
        {
            Console.WriteLine(file);
            fileName = System.IO.Path.GetFileName(file);
            Console.WriteLine(fileName);
            destFile = System.IO.Path.Combine(targetPath, fileName);
            System.IO.File.Copy(file, destFile, true);
    
        }
    }
    

    当我编译代码时,它没有给我任何错误,但我很难理解它为什么没有产生预期的结果。

1 个答案:

答案 0 :(得分:0)

有些事情看起来有点奇怪:

  1. 在foreach循环中(在main中)声明了两个未在别处引用的字符串变量。

  2. 您永远不会调用FileCopy。