C #: цикл по каталогу, вызывающему внешний процесс - PullRequest
0 голосов
/ 11 марта 2011

У меня есть код 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 Ответ

1 голос
/ 11 марта 2011

Попробуйте добавить process.WaitForExit () после его запуска.

...