时间:2018-10-10 标签:c#check->create->check folder loop

Posted

技术标签:

【中文标题】时间:2018-10-10 标签:c#check->create->check folder loop【英文标题】:c# check->create->check folder loop 【发布时间】:2016-02-16 08:48:39 【问题描述】:

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

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

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】:

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

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

正如您现在所发现的那样,这会让事情变得混乱。只需在每次循环迭代时调用方法一次并存储方法的结果。然后在循环条件中使用存储的结果:

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

【讨论】:

你的建议肯定更好看。仍然很不清楚为什么甚至有一个循环 - CreateDirectory 不能成功,所以调用它一次就足够了(特别是因为它也会创建所有必要的子文件夹) @AlexeiLevenkov:没错,整个代码块看起来有点傻。虽然这可能与"so i cant use the best solution" 有关,但这是我无法完全理解的声明:-/ 你的大卫,在发布我的第一个可用软件之前,我必须学习很多解决方案 :)

以上是关于时间:2018-10-10 标签:c#check->create->check folder loop的主要内容,如果未能解决你的问题,请参考以下文章

HTML input标签的checked属性与Razor解析

checkbox标签已有checked=checked但是不显示勾选

关于input标签checkbox属性 和checked

jquery,attr,prop,checkbox标签已有checked=checked但是不显示勾选

Python accuracy_check 为翻转分类给出 0 结果

HTMLHTML 表单 ① ( input 表单控件 | input 标签语法 | input 标签属性 | type 属性 | value 属性 | name 属性 | checked 属性 )