簡體   English   中英

我的for陳述無法正常運作

[英]My for statement isn't working properly

我已經嘗試了for循環的許多不同迭代,但它們都無法正常工作或只能中途工作。 所以我不知道。 這是我的表格:

在此處輸入圖片說明

因此,當我單擊“創建文件夾”按鈕時,應該為樹視圖中的每個節點創建一個文件夾(名為FolderTV)。 它當前所做的只是創建New_Mod文件夾和Data文件夾而已。 我希望它為每個節點和子節點創建一個文件夾。 例如,它將創建New_Mod文件夾,然后在該文件夾中創建Data,Models和Textures文件夾,並在Data文件夾中創建一個Scripts文件夾。

這是該按鈕的代碼:

private void button3_Click(object sender, EventArgs e)    
    {
        for (int i = 0; i <= FoldersTV.Nodes.Count; i++)
        {

            FoldersTV.SelectedNode = FoldersTV.TopNode;
            MessageBox.Show("Current Node: " + FoldersTV.SelectedNode.Text.ToString());
            Directory.CreateDirectory(SEAppdata + "\\" + FoldersTV.SelectedNode.Text.ToString());
            for (int x = 0; x <= FoldersTV.Nodes.Count; x++)
            {
                TreeNode nextNode = FoldersTV.SelectedNode.NextVisibleNode;
                MessageBox.Show("Next Node: " + nextNode.Text.ToString());
                Directory.CreateDirectory(SEAppdata + "\\" + FoldersTV.SelectedNode.Text.ToString() + "\\" + nextNode.Text.ToString());
                x++;
            }
            i++;
        }

    }

嘗試此(未試用的)遞歸解決方案,並首先嘗試理解它;)

private void CreateDirs(string path, IEnumerable<TreeNode> nodes) {
    foreach(var node in nodes) {
    //  string dir = path + "\\" + node.Text;
        string dir = Path.Combine(path, node.Text);
        Directory.CreateDirectory(dir);
        CreateDirs(dir, node.Nodes);
    }
}

private void button3_Click(object sender, EventArgs e) {
    CreateDirs(SEAppdata, FoldersTV.Nodes);
}

編輯:帶有少量調試打印輸出的版本:

// using System.Diagnostics;
private void CreateDirs(string path, IEnumerable<TreeNode> nodes) {

//  iterate through each node (use the variable `node`!)
    foreach(var node in nodes) {
    //  combine the path with node.Text
        string dir = Path.Combine(path, node.Text);

    //  create the directory + debug printout
        Debug.WriteLine("CreateDirectory({0})", dir);
        Directory.CreateDirectory(dir);

    //  recursion (create sub-dirs for all sub-nodes)
        CreateDirs(dir, node.Nodes);
    }
}

請參閱: System.Diagnostics.Debug.WriteLine

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM