我正在开发wpf应用程序。我使用以下代码运行degrib.exe为什么exe没有在程序文件中运行?
public static void GenerateCsvFile(string fileName)
{
try
{
MessageBox.Show("Csv Error");
MessageBox.Show("File Name : " + fileName);
MessageBox.Show("WorkingDirectory" + new FileInfo(fileName).DirectoryName);
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = @"C:\ndfd\degrib\bin\degrib.exe";
startInfo.Arguments = @"" + fileName + "" + " -C -msg 1 -Csv";
startInfo.UseShellExecute = true;
startInfo.WorkingDirectory = new FileInfo(fileName).DirectoryName;
process.StartInfo = startInfo;
process.Start();
process.WaitForExit();
process.Close();
System.Diagnostics.Process process1 = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo1 = new System.Diagnostics.ProcessStartInfo();
startInfo1.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo1.FileName = @"C:\ndfd\degrib\bin\degrib.exe";
startInfo1.Arguments = @"" + fileName + "" + " -C -msg all -nMet -Csv";
startInfo1.UseShellExecute = true;
startInfo1.WorkingDirectory = new FileInfo(fileName).DirectoryName;
process1.StartInfo = startInfo1;
process1.Start();
process1.WaitForExit();
process1.Close();
}
catch (Exception ex)
{
MessageBox.Show("Degrib Error");
Utility.ShowErrorMessage(ex);
}
}
degrib.exe从grib文件生成csv文件。这里http://www.nws.noaa.gov/mdl/degrib/index.php
是degrib的解释。在上述功能中,fileName
是grib文件的路径。如果grib文件放置在Program Files以外的任何文件夹中,上述功能将从grib文件制作csv文件。如果我将Grib文件放入程序文件或程序文件中的任何其他文件夹,相同的功能将不会生成csv文件。相同的功能也不适用于AppData文件夹。为什么发生这种情况?你能为我提供解决上述问题的任何解决方案吗?
用户权限。以管理员身份运行进程。 – leppie
你必须问这个谁写了degrib ... – Tigran
@leppie:根据我的理解,即使没有管理员权限,AppData也必须工作。 – Tigran