C#:通过调用外部进程的目录循环

时间:2011-03-10 22:12:04

标签: c# xml command-line-arguments saxon xquery

我有下面的C#代码,用于在目录中输入每个文件,在其上运行XQuery进程,并将每个文件输出为XML文件。该代码调用SAXON XQuery处理器。注意:代码现在可以工作,但它只处理目录中的第一个文件。输入目录中的第二个,第三个等输出文件作为空XML文件返回。问题:如何修改代码以处理输入目录中的所有文件(不仅仅是第一个)?

  public void OpenWithArguments(string t)
  {

    string sourceDir = t;
    string [] fileEntries = Directory.GetFiles(sourceDir);

    foreach (string fileName in fileEntries)

      {

        Process process = new Process();
        process.StartInfo.FileName = @"C:\Program Files\Java\jdk6\bin\java";


        process.StartInfo.CreateNoWindow = true;
        process.StartInfoArguments = 
          @" -cp C:\mydir\saxon9he.jar net.sf.saxon.Query -o:C:\myOutPutFiles\" + 
              Path.GetFileNameWithoutExtension(fileName) + 
          @".xml C:\myQueries\myquery.xquery input=" + 
              Path.GetFileNameWithoutExtension(fileName);

        process.Start();
        process.Close();

      }
  }

1 个答案:

答案 0 :(得分:1)

尝试在启动后添加process.WaitForExit()。