2017-07-29 143 views
-1

我正在創建一個應用程序在C#,它顯示啓動時的對話框並將要求輸入項目名稱。同時,我添加了2個按鈕:CreateExit如何創建一個包含項目中所有文件的文件夾?

如果您按下create,那麼您在TextBox中輸入的項目名稱將以該名稱保存在Documents文件夾中。項目文件夾內將包含2個獨立的文件夾,分別稱爲imgjs。如果你下一次嘗試創建一個名稱爲該文件夾的項目,它不會覆蓋該文件夾(讓我們說我出現了MsgBox)。下面的代碼:

//Unable to create project 
     string mydir = Environment.SpecialFolder.MyDocuments + "\\" + textBox1.Text; 
     if (Directory.Exists(mydir) == true) 
     { 
       MessageBox.Show("The project name: " + textBox1.Text + " has already been created. Please consider renaming a different project name.", "Netplait", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       textBox1.Focus(); 
       return; 
     } 

     if (Directory.Exists(mydir) == false) 
     { 
      Directory.CreateDirectory(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), textBox1.Text)); 
     } 
+0

所以你問的是如何刪除文件夾和創建一個新的或如何檢測該文件夾已經存在? –

+0

使用文本框輸入名稱創建一個文件夾目錄,然後如果我們輸入與以前相同的項目名稱,它將檢測並禁用請求 – Roebebin

+0

您需要調用[Directory.Exists](https://msdn.microsoft.com /en-us/library/system.io.directory.exists(v=vs.110).aspx)方法 –

回答

3

Environment.SpecialFolder.MyDocuments是一個枚舉,而不是現有的目錄的路徑。您的代碼失敗,因爲將此枚舉值連接到文本框中的字符串是沒有意義的。

相反,你得到的實際myDocument中文件夾

string mydir = Environment.GetFolderPath(Environement.SpecialFolder.MyDocuments); 
mydir = Path.Combine(myDir, textBox1.Text); 
if(DirectoryExists(myDir)) 
{ 
    MessageBox.Show(.....); 
    textBox1.Focus(); 
    return; 
} 
else 
{ 
    Directory.CreateDirectory(myDir); 
} 

還要注意的是字符串相結合,使有效路徑最好是把這個任務留給專業的方法Path.Combine
順便說一句,你的代碼中的Directory.CreateDirectory部分是正確的。

+0

非常感謝。它爲我工作! – Roebebin

相關問題