2013-02-24 22 views
0

在我的類中描述圖形時,我想生成一個生成GraphViz代碼的方法,並將其保存到.dot文件,以及其他使用該文件生成png圖形文件圖形。我想:從C#代碼開始,GraphViz不生成png文件

 private void MakeDotFile() 
     { 
      FileStream fileStream = 
       new FileStream("tmp.dot", FileMode.Create, FileAccess.Write); 
      StreamWriter streamWriter = new StreamWriter(fileStream); 
      streamWriter.Write("graph { a -- b }"); 
      streamWriter.Close(); 
      fileStream.Close(); 
     } 

     public void MakePngFile() 
     { 
      MakeDotFile(); 
      Process process = new Process(); 
      process.StartInfo = 
       new ProcessStartInfo("<< dot.exe location >>", 
       "-Tpng << .dot file location >> > << .png file location >>"); 
      process.Start(); 
      process.WaitForExit(); 
     } 

,但遺憾的是,在完成製作terible聽起來像「嘟嘟」聲,無所事事(沒有創造png文件)。當我調試時,我發現進程退出代碼是3.我多次檢查路徑是否正常。有趣的是,在cmd.exe中具有相同參數的相同程序正在運行。 你覺得呢?哪裏有問題?解決辦法是什麼? 在此先感謝

回答

0

而不是重定向輸出,您應該使用-o參數dot

process.StartInfo = 
    new ProcessStartInfo(@"D:\graphviz\bin\dot.exe", 
     @"-Tpng D:\tmp.dot -o D:\tmp.png");