时间: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但是不显示勾选
jquery,attr,prop,checkbox标签已有checked=checked但是不显示勾选
Python accuracy_check 为翻转分类给出 0 结果
HTMLHTML 表单 ① ( input 表单控件 | input 标签语法 | input 标签属性 | type 属性 | value 属性 | name 属性 | checked 属性 )