c#check-> create->检查文件夹循环

时间:2015-11-15 01:14:18

标签: c# while-loop backup directory file-exists

我想在c#中问一个关于我的代码的简单问题....我知道有很多主题具有相同或相似的主题/代码结果。但我需要将我的代码交给学校,所以我不能只使用Stackoverflow或其他页面上的最佳解决方案。我向我的老师展示了我的代码,现在需要修复一个小错误。

代码是关于使用控制台报告备份文件,因此在第一步中检查文件夹是否存在。第二步是报告文件夹是否存在,如果不存在代码创建此文件夹并重新检查...

SITUATION : CONSOLE REPORT

folders doesnt exist:
02:02:06 directory for backup Exist ... can continue
02:02:05 directory for backup DOESNT EXIST ... creating required folders...

folders exist :
02:02:55 directory for backup Exist ... can continue
02:02:54 directory for backup Exist ... can continue

在第一个例子中,报告没问题,但是在第二个例子中,我的代码两次告诉我相同的信息...我只是无法使我的代码正常工作..

这是我的代码:

    public void checkbackupfolders() {
       do {
            create_backup_folders();
          } while (create_backup_folders() == false);
    }

    public bool create_backup_folders()
    {
        string path = "\\BACKUP\\" + Globals.hostname;
        if (Directory.Exists(path))
        {
            consolecho("directory for backup Exist ... can continue");
            return true;
        }
        else
        {
            consolecho("directory for backup DOESNT EXIST ... creating required folders...");
            Directory.CreateDirectory("\\BACKUP\\" + Globals.hostname);
            return false;
        }
    }

1 个答案:

答案 0 :(得分:1)

为什么要在这里调用方法两次?:

do {
    create_backup_folders();
} while (create_backup_folders() == false);

这会让你感到困惑,正如你现在所发现的那样。只需在每次循环迭代中调用方法一次,然后存储方法的结果。然后在循环条件中使用该存储的结果:

var canContinue = false;
do {
    canContinue = create_backup_folders();
} while (canContinue == false);