私はC#でwpfアプリケーションを開発しています。Microsoft.Win32.OpenFileDialogを介してファイルシステムを参照しているボタンが1つあります。Gribファイルで.exeを実行するためにProcess.Start()を呼び出している送信ボタンが1つあります。exeは、.csvファイルを正常に生成します。最初にファイルシステムを参照し、ファイルを選択してから、送信ボタンをクリックします。私のアプリケーション実行パスはD:\ Projects \ ApiRouting \ ApiRouting \ bin\Debugです。私のアプリケーションのD:\ Projects \ ApiRouting \ ApiRouting\Filesに1つのフォルダーがあります。パスD:\ Projects \ ApiRouting \ ApiRouting \ Filesからファイルを選択し、送信ボタンをクリックすると、.csvファイルがD:\ Projects \ ApiRouting \ ApiRouting\Filesに生成されます。これは正しいです。D:\ Documentsからファイルを選択し、送信ボタンをクリックすると、.csvファイルがD:\Documentsに生成されます。実行する私のコード。
public static void GenerateCsvFile(string fileName)
{
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;
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;
process1.StartInfo = startInfo1;
process1.Start();
process1.WaitForExit();
process1.Close();
}
private void BrowseButton_Click(object sender, RoutedEventArgs e)
{
safeFileName = string.Empty;
// Create OpenFileDialog
Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
// Set filter for file extension and default file extension
//dlg.DefaultExt = ".txt";
//dlg.Filter = "Zip Files|*.zip*";
dlg.Multiselect = false;
// Display OpenFileDialog by calling ShowDialog method
Nullable<bool> result = dlg.ShowDialog();
// Get the selected file name and display in a TextBox
if (result == true)
{
FileNameTextBox.Text = string.Empty;
// Open document
string fileName = dlg.FileName;
safeFileName = dlg.SafeFileName;
App.ZipFileSafeName = safeFileName;
FileNameTextBox.Text = fileName;
App.ZipFileName = fileName;
}
//dlg.InitialDirectory = @"D:\Projects\ApiRouting\ApiRouting\bin\Debug";
//dlg.FileName = @"D:\Projects\ApiRouting\ApiRouting\bin\Debug\Pacificwind.grb";
//dlg.Reset();
}
ユーザーがファイルシステムの任意の場所からファイルを選択したら、そのファイルをD:\ Projects \ ApiRouting \ ApiRouting \ Filesにコピーして、.exeを実行します。したがって、GenerateCsvFileメソッドには常にfileNameパラメーター値D:\ Projects \ ApiRouting \ ApiRouting \ Files\xyz.grbがあります。したがって、D:\ Documentsからgribファイルを選択したときにアプリケーションがD:\ Documentsで.csvファイルを生成する理由と、D:\ Projects \ ApiRouting \ ApiRouting\Filesで.csvファイルを生成する理由D:\ Projects \ ApiRouting \ ApiRouting \ Filesからの.csvファイル?