2009-05-11 3 views
1

Ich habe Windows Forms-Anwendung Wich läuft eine weitere Konsolenanwendung hier ist der Teil des CodesLaufkonsolenanwendung von C# aber Anwendung kann nicht Datei erstellen

prog = new Process(); 
prog.StartInfo.FileName = exefile; 

Die Konsolenanwendung sollte Datei erstellen, aber wenn diese Anwendung ausgeführt wird von C# ist es schafft keine Datei wenn im Konsolenanwendung mit Doppelklick auf läuft es funktioniert gut hier ist der Teil des Codes von „exefile“ (seine auf C++)

freopen("file.in","r",stdin); 
freopen("file.out","w",stdout); 
printf("somedata\n"); 

„file.in“ existiert sicherlich

+0

Wie Andrew fragte: Bist du act Rufen Sie prog.Start() überall auf ... können Sie überprüfen, ob die Konsolenanwendung tatsächlich von Ihrer App ausgeführt wird? –

Antwort

2

Die wahrscheinlichste ist, dass Sie den Arbeitspfad festlegen müssen:

prog.StartInfo.WorkingDirectory = ... 

das heißt ich denke, es in den aktuellen App-Ordnern nicht finden file.in können.

0

Ich würde vorschlagen,

  • Griff Ausnahmen, um zu sehen, was los ist falsch
  • wie erwähnt vor sicher, dass Sie den Start () -Methode aufrufen

Hier ist ein Code-Snippet von MSDN , dass Sie möchten vielleicht verweisen

Process myProcess = new Process(); 

     try 
     { 
      // Get the path that stores user documents. 
      string myDocumentsPath = 
       Environment.GetFolderPath(Environment.SpecialFolder.Personal); 

      myProcess.StartInfo.FileName = myDocumentsPath + "\\MyFile.doc"; 
      myProcess.StartInfo.Verb = "Print"; 
      myProcess.StartInfo.CreateNoWindow = true; 
      myProcess.Start(); 
     } 
     catch (Win32Exception e) 
     { 
      if(e.NativeErrorCode == ERROR_FILE_NOT_FOUND) 
      { 
       Console.WriteLine(e.Message + ". Check the path."); 
      } 

      else if (e.NativeErrorCode == ERROR_ACCESS_DENIED) 
      { 
       // Note that if your word processor might generate exceptions 
       // such as this, which are handled first. 
       Console.WriteLine(e.Message + 
        ". You do not have permission to print this file."); 
      } 
     } 
Verwandte Themen