2011-03-10 69 views
0

我有下面的C#代碼,用於輸入目錄中的每個文件,在其上運行XQuery進程,並將每個文件輸出爲XML文件。該代碼調用SAXON XQuery處理器。注意:代碼現在可以工作,但它只處理目錄中的第一個文件。輸入目錄中的第二,第三等輸出文件將返回爲空XML文件。問題:如何修改代碼以處理輸入目錄中的所有文件(而不僅僅是第一個文件)?C#:通過目錄循環調用外部進程

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(); 

     } 
    } 
+0

你能檢查'fileEntries'中存在多少個文件嗎? – Kumar 2011-03-10 22:23:54

回答

1

嘗試在啓動它後添加process.WaitForExit()。

+0

我想我找出了問題所在。我沒有在XQuery腳本本身中設置好輸入文件的路徑。感謝您的回覆。 – user654339 2011-03-11 00:31:59