2017-12-03 219 views
0

您好!
我们正在开发一个程序,您可以在其中创建新的“文件夹”并上传文件。
问题是,我想让它在一个文件夹内,不允许创建两个具有相同名称的子文件夹。
这是我的代码。C#项目不在列表中,且不为空或空白

while (string.IsNullOrEmpty(folderName) || !foglalt || !string.IsNullOrWhiteSpace(folderName)) 
{ 
    folderName = Console.ReadLine(); 

    if (string.IsNullOrEmpty(folderName) || string.IsNullOrWhiteSpace(folderName)) 
    { 
     Console.WriteLine("Ez a mező nem lehet üres. \nÚj mappa neve:"); 
     //(Can't be null. \nNew foldername:) 
     break; 
    } 

    if (p.FolderList.Contains(folderName)) 
    { 
     foglalt = true; 
     Console.WriteLine(
      "Ez a mappanév egyszer már szerepel ebben a környezetben. Kérlek válassz újat!\nÚj mappa neve:"); 
     //(That name is already taken. \nNew foldername:) 
    } 
    else {foglalt = false;} 
} 

(“foglalt”是一个布尔值,意味着拍摄。)
必须有一些错误while条件,但我只是不知道是什么。
你能帮我解决这个问题吗?

+0

当我给它elready存在,它的工作原理,当我给它命名为空白或空它的工作原理,但是当我键入的东西,将是一件好事,它只是不断地问我要另一个名字。 – Skickpause

+0

那么你期望它做什么?你能提供[mcve]而不是这个片段吗? (理想情况下,为了将来的读者,将所有变量名称和消息更改为英文。) –

+0

因此,您希望继续尝试获取有效的文件夹名称,直到用户给出一个名称为止? – lamandy

回答

0
while (true) 
{ 
    folderName = Console.ReadLine(); 

    // if folder name is null or empty or whitespace, ask for a new folder name 
    if (string.IsNullOrEmpty(folderName) || string.IsNullOrWhiteSpace(folderName)) 
    { 
     Console.WriteLine("Ez a mező nem lehet üres. \nÚj mappa neve:"); 
     //(Can't be null. \nNew foldername:) 
    } 
    //if folder name already exists, ask for a new one 
    else if (p.FolderList.Contains(folderName)) 
    { 
     Console.WriteLine("Ez a mappanév egyszer már szerepel ebben a környezetben. Kérlek válassz újat!\nÚj mappa neve:"); 
     //(That name is already taken. \nNew foldername:) 
    } 
    else //Folder Name is valid 
     break; //proceed to do stuff with the folder name 
} 
//Do my stuff with the valid folder name 
+0

Visual Studio不喜欢“while(1)”它说“不能将int类型转换为bool” – Skickpause

+0

将1改为true然后 – lamandy

+0

@Skickpause只需要1个额外的建议,而不是像这样检查,请尝试使用Directory.CreateDirectory进行更强大的检查。上面的检查是不够的,有些情况下用户没有权限访问文件夹,文件夹名称包含无效字符,名称太长等。这个例子在[MSDN](https://msdn.microsoft.com/en-us/library/54a0at6s(v = vs.110).aspx) – lamandy