我試圖顯示從平面文件中讀取的未知數量的嵌套文件夾的目錄樹UI。我的想法是使用結構可能指向孩子和家長,像這樣:有點困惑的範圍,以及如何爲目錄樹創建嵌套的結構
struct audioSelectTreeItem {
FString folderName;
FString folderPath;
struct audioSelectTreeItem* folderParentItem;
TArray<struct audioSelectTreeItem*> childFolderItems;
};
當我讀到保存目錄的文件我保存childFolderItems所有子文件夾和folderParentItem父。這樣在我的界面,如果有人想上去一個文件夾,我看着folderParentItem,然後列出它的子文件夾與childFolderItems。
我遇到的問題是如何保存這個。我做了一個循環遍歷文件夾和子項的函數,可以創建所有這些結構並保存它們。然而,我認爲的問題是,如果我在一個循環中創建一個結構,然後在前面的結構(子文件夾)中保存一個指向它的指針,我無法從程序中的其他任何地方訪問它。
有沒有一種方法可以完成創建這些更加永久性的功能,以及我在完成後如何去清理?
編輯:寫道,如果我正在閱讀實時目錄。是一個帶有目錄信息的文本文件,我需要將其放入樹形界面。
更新: 這裏的環做什麼一個小例子:
void AMyPlayerController::showAudioPicks() {
for (int counter = startCount; counter < fileStringArray.Num(); counter++) { //startcount 3
audioSelectTreeItem newTreeItem;
newTreeItem.folderPath = fileStringArray[counter];
mainListTree.childFolderItems.Add(&newTreeItem);
...
所以我的問題在於創造這些新audioSelectTreeItem的添加嵌套結構,但讓他們訪問其他地方在節目中。
調用用戶定義的函數'GetDirectoryContent(audioSelectTreeItem p_asti)'來顯示'self-repeataion loop'中的子文件夾和文件。您只需要選擇要保存目錄數據的文件夾和向量的廣告路徑。 –
@ A.Godnov對不起,我寫如果我正在從一個實時目錄閱讀。我實際上是這麼做的,並且正在從「保存的目錄」保存的文件中讀取 – Shawn
您正在閱讀的文件的格式是什麼? –