我正在開發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