【问题标题】:C#: Looping Through a Directory Calling an External ProcessC#:循环调用外部进程的目录
【发布时间】:2011-03-10 22:12:03
【问题描述】:

我有下面的 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();

      }
  }

【问题讨论】:

  • 你能检查fileEntries中存在多少个文件吗?

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


【解决方案1】:

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

【讨论】:

  • 我想我找到了问题所在。我没有在 XQuery 脚本本身中设置输入文件的路径。感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 2016-07-27
相关资源
最近更新 更多