나는 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 이외의 다른 폴더에 있으면 csv 파일을 grib 파일에서 크롤링합니다. 프로그램 파일이나 프로그램 파일의 다른 폴더에 grib 파일을 놓은 경우 동일한 기능이 csv 파일을 생성하지 않습니다. 동일한 기능이 AppData 폴더에서도 작동하지 않습니다. 왜 이런 일이 일어나는거야? 위 문제에 대한 해결책을 제공해 주시겠습니까?
사용자 권한. 프로세스를 관리자로 실행하십시오. – leppie
당신은 degrib을 쓴 사람에게이 질문을해야합니다. – Tigran
@leppie : AppData는 제 이해에서 관리자 권한이없는 경우에도 작동해야합니다. – Tigran