我想在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;
}
}
答案 0 :(得分:1)
为什么要在这里调用方法两次?:
do {
create_backup_folders();
} while (create_backup_folders() == false);
这会让你感到困惑,正如你现在所发现的那样。只需在每次循环迭代中调用方法一次,然后存储方法的结果。然后在循环条件中使用该存储的结果:
var canContinue = false;
do {
canContinue = create_backup_folders();
} while (canContinue == false);