我有一些由我的应用程序和id创建的文件夹,当他们点击一个名为“清理”的按钮时,它会检查是否存在任何预定文件夹,如果他们确实删除了它们,这就是我到目前为止尝试过什么错了?
string tempFolder = Environment.GerFolderPath(Environment.SpecialFolder.ApplicationData);
if (Directory.Exists(tempFolder + "//" + "temp1"))
if (Directory.Exists(tempFolder + "//" + "temp2"))
if (Directory.Exists(tempFolder + "//" + "temp3"))
if (Directory.Exists(tempFolder + "//" + "temp4"))
{
System.IO.Directory.Delete(tempFolder + "\\" + "temp1", true);
System.IO.Directory.Delete(tempFolder + "\\" + "temp2", true);
System.IO.Directory.Delete(tempFolder + "\\" + "temp3", true);
System.IO.Directory.Delete(tempFolder + "\\" + "temp4", true);
}
else
{
MessageBox.Show("No Cleanup Needed");
}
所以什么错了?我测试了它,它似乎有2个文件夹但不是4个或更多
答案 0 :(得分:1)
if(statement1)
if(statement2)
if(statement3)
if(statement4)
{
action();
} else
{
anotherAction()
}
平均值
if(statement1)
{
if(statement2)
{
if(statement3)
{
if(statement4)
{
action();
}
else
{
anotherAction()
}
}
}
}
因此,如果其中一个陈述是假的,则在这种情况下不执行任何操作。
答案 1 :(得分:0)
您的if
语句订购不正确。
应该是:
bool cleanupNeeded = false;
if (Directory.Exists(tempFolder + "//" + "temp1"))
{
System.IO.Directory.Delete(tempFolder + "\\" + "temp1", true);
cleanupNeeded = true;
}
if (Directory.Exists(tempFolder + "//" + "temp2"))
{
System.IO.Directory.Delete(tempFolder + "\\" + "temp2", true);
cleanupNeeded = true;
}
.
.
.
if(!cleanupNeeded)
{
//show your message box
}
当然,您可以在数组(或列表)中保存目录的名称,并使用循环对其进行迭代,从而使代码更具可读性,可维护性和可伸缩性。