2009-05-11 6 views
1

je application Windows Forms Wich exécute une autre application de la console est ici la partie du Codeapplication console en cours de C# mais l'application ne peut pas créer un fichier

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

L'application de la console devrait créer un fichier, mais lors de l'exécution que l'application de C#, il ne crée aucun fichier quand je suis en cours d'exécution application console avec double cliquez dessus fonctionne très bien est ici la partie du code à partir de « exefile » (son sur C++)

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

« file.in » existe sûrement

+0

Comme Andrew a demandé: êtes-vous agir? Appelez prog.Start() n'importe où ... pouvez-vous vérifier que l'application de console est réellement exécutée par votre application? –

Répondre

2

La chose la plus probable est que vous devez définir le chemin de travail:

prog.StartInfo.WorkingDirectory = ... 

dire que je pense qu'il ne peut pas trouver file.in dans le dossier de l'application actuelle .

0

Je suggère,

  • exceptions poignée pour voir ce qui ne va pas
  • comme mentionné plus haut assurez-vous appelez le début() méthode

Voici un extrait de code de msdn , que vous pourriez vouloir consulter

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."); 
      } 
     } 
Questions connexes