2017-12-03 218 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