php エディタ Xiaoxin は、フォルダー操作に関するちょっとしたトリック、つまり空のフォルダーのみを含むフォルダーをツリーから削除する方法を紹介します。日常のファイル管理では、空のフォルダーのみが含まれるフォルダーが発生することがあります。これらのフォルダーはストレージ領域を占有しますが、実際のコンテンツは含まれていません。次の簡単な操作により、これらの空のフォルダーを簡単にクリアし、貴重なストレージ領域を解放し、ファイル管理の効率を向上させることができます。
あります
リーリーこのスライスをモデルにしたディレクトリ構造があります。このディレクトリには複数のレベルのフォルダー構造があり、最終的にはファイルが存在しない可能性があります。またね### リーリー
空のフォルダーのみを含むフォルダーをクリーンアップしたいと考えています。したがって、この例では、folder1 には 1 つのファイルだけが残り、それ以下のファイルはすべて削除されます。 しかし、これを行うための良いアイデアが思いつかないようです。元のツリーを変更せずに新しいツリーを完全に作成することはできますが、ツリーを効率的に反復処理して最後の子に子がないかどうかを確認し、ルートに戻ってその子を削除する方法がわかりません。空のフォルダーリスト。 あらゆるアイデアを歓迎します。私の最初の解決策では、リーフのみが削除され、親フォルダーは削除されません:
type node struct { id string children []node }回避策 まず良い質問ですが、他の人があなたのユースケースを再現するのは難しいでしょう。次回からは、人々が使用してメソッドをすぐにテストして結果が得られる、再現可能なコードを追加するようにしてください。ルートを渡したように見えますが、それを初期化するにはどうすればよいですか?誰かがあなたを助けてくれる必要がある場合は、まず関係を築く必要があります。一般的に言って、これは不便です。それにもかかわらず、解決策を見てみましょう。
ディレクトリ構造
ディレクトリを入力してください
リーリー
期待される結果
リーリー
n-ary ツリーにデータを設定する方法では、自己参照ポインターを使用して
node を定義する必要があります。正確なスライスではありません。したがって、次のようにノードを定義します
リーリー
リーリー
ツリーにデータを追加する方法queue 入力
n 分ツリー を使用した単純な反復方法です。 Golang はキューの実装を提供しませんが、Golang チャネルは実際には単なるキューです。 golang では動的なバッファリングされたチャネルを作成できないため、
500 のままにしました。私見ですが、この数値はほぼすべてのシナリオで機能するはずです。
リーリー
リーリー
最後に解決策です。リーリー
ここに
リーリー以上が空のフォルダーのみを含むフォルダーをツリーからクリアしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。