我不知道我在做什么错,但是我试图在二进制文件不运行时删除它,但是如果它正在运行,则会显示一个消息框,告诉用户在删除程序之前先关闭程序。当我尝试执行此操作时,它会忽略消息框并尝试在运行时删除该文件,显然您不能这样做,因此Visual Studio会以以下方式返回:
'System.UnauthorizedAccessException:'拒绝访问路径'C:\ cmctemp \ lcpol \ lcweb.exe'。
不知道为什么它不显示消息框。
private void button5_Click(object sender, EventArgs e)
{
Process[] pname = Process.GetProcessesByName("lcweb.exe");
if (pname.Length == 0)
if (File.Exists(@"C:\cmctemp\lcpol\lcweb.exe"))
File.Delete(@"C:\cmctemp\lcpol\lcweb.exe");
else
MessageBox.Show("Please close the program before deleting!", "Information");
}
最佳答案
尝试这样做:
private void button5_Click(object sender, EventArgs e)
{
Process[] pname = Process.GetProcessesByName("lcweb");
if (pname.Length == 0 && File.Exists(@"C:\cmctemp\lcpol\lcweb.exe"))
File.Delete(@"C:\cmctemp\lcpol\lcweb.exe");
else
MessageBox.Show("Please close the program before deleting!", "Information");
}
第一个更改是从GetProcessesByName中删除“ .exe”,第二个更改是调整if语句。
希望对您有所帮助。