Как я могу проверить, если существует несколько папок, если так удалить их по нажатию кнопки? - PullRequest
0 голосов
/ 18 июня 2010

У меня есть несколько папок, созданных моим приложением, и они идентифицируются следующим образом, когда они нажимают кнопку с именем «очистить», чтобы она проверяла, существует ли какая-либо из заранее определенных папок, и если они действительно удаляют их, Я уже пробовал, что с ним не так?

    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 ]

1 голос
/ 18 июня 2010
if(statement1)
if(statement2)
if(statement3)
if(statement4)
{
  action();
} else 
{
  anotherAction()
}

Средства

if(statement1)
{
    if(statement2)
    {
        if(statement3)
        {
            if(statement4)
            {
                action();
            } 
            else 
            {
                anotherAction()
            }
        }
    }
}

Итак, если одно из утверждений ложно, в этом случае ничего не будет выполнено.

0 голосов
/ 18 июня 2010

Ваши 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
    }

Конечно, вы можете хранить имена каталогов в массиве (или списке) и циклически повторять их, делая код более читабельным, поддерживаемым и масштабируемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...