string[] files = Directory.GetFiles(@"E:\执行外部EXE\WindowsApplication1\bin","*.exe");
int x = 10;
int y = 10;
int i = 0;
foreach (string file in files)
{
Label lab = new Label();
lab.Name = Path.GetFileNameWithoutExtension(file);
lab.Text = lab.Name;
lab.Location = new Point(x+x*2, y + 50 * i);
lab.Tag = Path.GetExtension(file);
lab.Click += new EventHandler(lab_Click);
this.Controls.Add(lab);
i++;
}
}
private void lab_Click(object sender, EventArgs e)
{
Control control = sender as Control;
string name = control.Name;
string extension = control.Tag.ToString();
string file = name + extension;
//string file = Path.Combine(@"E:\执行外部EXE\WindowsApplication1\bin",control.Tag.ToString()+".exe");
System.Diagnostics.Process.Start(file); }最后一行~ start(file) 这里说找不到系统路径` 这是为什么 ` 要怎么改呢 还有就是路径不能写死了` 我要怎么写`~~ 高人指教一下啊 小弟先谢过了
int x = 10;
int y = 10;
int i = 0;
foreach (string file in files)
{
Label lab = new Label();
lab.Name = Path.GetFileNameWithoutExtension(file);
lab.Text = lab.Name;
lab.Location = new Point(x+x*2, y + 50 * i);
lab.Tag = Path.GetExtension(file);
lab.Click += new EventHandler(lab_Click);
this.Controls.Add(lab);
i++;
}
}
private void lab_Click(object sender, EventArgs e)
{
Control control = sender as Control;
string name = control.Name;
string extension = control.Tag.ToString();
string file = name + extension;
//string file = Path.Combine(@"E:\执行外部EXE\WindowsApplication1\bin",control.Tag.ToString()+".exe");
System.Diagnostics.Process.Start(file); }最后一行~ start(file) 这里说找不到系统路径` 这是为什么 ` 要怎么改呢 还有就是路径不能写死了` 我要怎么写`~~ 高人指教一下啊 小弟先谢过了
file = name + extension;
那么 file可能等于 "dawda.exe",但是没有前面的"E:\执行外部EXE\WindowsApplication1\bin"改为
file = @"E:\执行外部EXE\WindowsApplication1\bin\" + name + extension;
1.如果.exe的路径与当前系统执行路径有关系的话,可以使用相对Application.StartPath的路径完成。
2.如果.exe的路径是任意的,没有什么规律的话,最好使用配置文件,将基路径放在app.config中,运行时加载。
为方便的话,可以写到配置文件中