2011-03-10 4 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

답변

1

시작한 후에 process.WaitForExit()를 추가하십시오.

+0

나는 문제를 알아 냈다고 생각한다. 필자는 XQuery 스크립트 자체에서 입력 파일의 경로를 설정하지 않았습니다. 답장을 보내 주셔서 감사합니다. – user654339

관련 문제