フラットファイルから読み込まれる未知の量のネストされたフォルダのUIを表示しようとしています。私はchildFolderItemsで任意のサブフォルダとfolderParentItemで親を保存保存したディレクトリのファイルを読み込むときちょっと混乱して、ディレクトリツリーのネストされた構造体を作成する方法
struct audioSelectTreeItem {
FString folderName;
FString folderPath;
struct audioSelectTreeItem* folderParentItem;
TArray<struct audioSelectTreeItem*> childFolderItems;
};
:私の考えはそうのような子どもたちや保護者を指す可能性構造体を使用することでした。そうすれば、私のインターフェースでは、誰かがフォルダーに行きたいと思ったら、私は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)'を呼び出して、サブフォルダーとファイルを '自己反復ループ 'に表示します。 dirデータを保存する選択されたフォルダとベクトルのAdspathのみが必要です。 –
@A.Godnov申し訳ありませんが、ライブディレクトリから読んでいるかのように書いています。私は実際にそれを以前にして、 "保存されたディレクトリ"の保存されたファイルから読んでいます – Shawn
あなたは読んでいるファイルの形式は何ですか? –