如何检查是否存在多个文件夹如果是这样,请在按钮单击时删除它们?

时间:2010-06-18 06:46:45

标签: if-statement directory

我有一些由我的应用程序和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个或更多

2 个答案:

答案 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
    }

当然,您可以在数组(或列表)中保存目录的名称,并使用循环对其进行迭代,从而使代码更具可读性,可维护性和可伸缩性。

相关问题