我已經使用NSTreeNode創建了一個文件和文件夾的目錄樹結構,我在NSOutlineView中顯示。我的問題是一些文件夾是空的,我想從顯示中刪除這些文件夾。我已經遞歸地嘗試遍歷樹結構的每個元素來移除元素,但構建樹顯然比撕下元素容易得多。我的迭代已經開始於根,然後遍歷每個節點的childnodes,直到我到達樹的頂部。但是,由於某些文件夾可能包含多個空文件夾和非空文件夾,因此難以高效地移除我不確定的元素。僅僅因爲一個文件夾只包含另一個文件夾並不意味着我可以刪除它,因爲子文件夾可能是空的或包含文件。遞歸刪除樹目錄結構中的空項目
我想我需要找到樹的頂部元素/目錄,然後通過父節點的所有父節點向後迭代到我的根節點,並檢查每個文件夾是否爲空。如果文件夾爲空或僅包含我當前所在的文件夾,請刪除文件夾和父文件夾,依此類推,直至達到根目錄。
但是,我無法得到這個工作。有沒有人有辦法找到定義樹頂部的元素?還是有一種很好的方法來排序/刪除NSTreeNode結構中的空元素?
我很感激所有我能得到的幫助。謝謝。歡呼聲,特朗德
我認爲你只需要遍歷到每個分支的末尾,如果最後一個文件夾是空的刪除它,然後遞歸地向上移動樹刪除空的文件夾,並離開... – trueinViso