Ich habe eine C# -GUI, die es einem Benutzer erlaubt, eine Datei auszuwählen und diese dann gegen objdump auszuführen und den Inhalt an die GUI auszugeben.Dateipfade können nicht als Befehlszeilenargument übergeben werden, wenn Pfad Leerzeichen enthält?
Ich habe jedoch Probleme, wenn der Benutzer eine Datei auswählt, in der der Pfad Leerzeichen enthält, verursacht es die Ausführung der Befehlszeile zu unterbrechen.
Ich habe mich in Stackoverflow umgesehen und es scheinen all diese Hacks für Windows Scripting zu sein, weil Pfade mit Leerzeichen nicht einfach zu lösen sind. Da ich den Dateinamen jedoch programmatisch übergebe, kann ich das nicht/gibt es einen einfacheren Weg?
Dies ist mein Code:
private void button1_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK){
dataGridView1.Rows.Clear();
dataGridView1.Refresh();
string filename = openFileDialog1.FileName; //May contain spaces
try
{
var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = "dumpbin.exe",
Arguments = "/DISASM " + filename, // Causing this to fail
UseShellExecute = false,
RedirectStandardOutput = true,
CreateNoWindow = true
}
};
proc.Start();