我有Windows窗体应用程序运行另一个控制台应用程序 这是代码的一部分
prog = new Process();
prog.StartInfo.FileName = exefile;
控制台应用程序应该创建文件,但是当从C#运行该应用程序时,它不会创建任何文件 当我运行控制台应用程序双击它工作正常 这是“exefile”代码的一部分(在c ++上)
freopen("file.in","r",stdin);
freopen("file.out","w",stdout);
printf("somedata\n");
“file.in”肯定存在
答案 0 :(得分:2)
最可能的是你需要设置工作路径:
prog.StartInfo.WorkingDirectory = ...
即。我认为它无法在当前应用程序文件夹中找到file.in。
答案 1 :(得分:1)
答案 2 :(得分:0)
我建议,
以下是来自msdn的代码片段,您可能想要参考
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.");
}
}