web-dev-qa-db-ja.com

列UIのファセットのようなフォルダーフィルター-サブフォルダーの第1レベルのみを表示

私の知る限り、ファセット(標準UIを使用)と列UIは相互に排他的です。カスタマイズを追加するために列UIを使用したいのですが、重要な機能がありません。特定のディレクトリ内のフォルダーのみをフィルター処理します。ファセットを使用したことがある人は、すべてのプライマリディレクトリが

環境設定メディアライブラリ->音楽フォルダ

サブフォルダなしで、ファセットセクションにうまく表示されます。

例として、私のメディアライブラリパスがC:\Users\Me\mymusicであるとしましょう。mymusicという名前のフォルダに、abcそれぞれ。それらの中には、さまざまなアーティストのサブフォルダーが他にもたくさんあります。

ライブラリ内のフォルダの列が必要ですが、この例ではab、およびcのみであるC:\Users\Me\mymusic\のルートフォルダのみです。

C:\ Users\Me\mymusic\a(表示)
C:\ Users\Me\mymusic\a\ed sheeran(表示されていません)
C:\ Users\Me\mymusic\b\adele(表示されていません)

基本的に、列UIで、ファセットと同じことを行うフィールドコードが必要です

picture here

1
Kyub

あなたは間違った場所を見ています。おそらく、正しい検索クエリを含む自動再生リストが必要です。そして、これは奇妙なものです:)


特定のフォルダで事前にフィルタリングされた自動再生リストを作成するには

  1. 自動再生リストは、音楽ファイルを自動的に追加および削除します。ただし、Foobarがこれらのフォルダーを監視している場合に限ります。したがって、彼がすべてのルートフォルダをメディアライブラリに追加したことを確認してください

  2. Menu Bar » Library » Searchを介してメディアライブラリ検索ウィンドウを開きます

    enter image description here

  3. 検索フレーズを入力してください"$sub($len(%PATH%),$len($replace(%PATH%,\,)))" IS 4

    • 私が基本的に行っているのは、ファイルのフルパスを取得し、文字列の長さを計算することです。つまり、C:\Users\Me\mymusic\aは21文字の長さです。

    • 次に、長さをもう一度計算しますが、すべての\文字を何にも置き換えません。この例のパスには、削除される4つの円記号\が含まれています。したがって、2番目の長さは21 - 4 = 17です。

    • ここで、最初の(長い)値から2番目の(小さい)値を減算し、結果をxと比較します。xは目的のフォルダーレベルを表します(私は怠惰で、$directory(%PATH%)ではなく%PATH%を使用したため、実際にはもう1つです。短いクエリ式の場合)

    • 最後に、スラッシュを数える必要があります。
      C:\Users\Me\mymusic\aには3つのフォルダーと4つのバックスラッシュがあります"Diff IS 4"表示されますC:\Users\Me\mymusic\a\ed sheeranには4つのフォルダーと5つのバックスラッシュがあります"Diff IS NOT 4"表示されていません

    • クエリ構文 および タイトルフォーマット リファレンスをお読みください。それはすべてそこにあります。明示的に言及されていない唯一のこと:関数と"$directory_path(%PATH%)"のようなフィールドパラメータの組み合わせを二重引用符で囲みます。それ以外の場合は、クエリ構文とタイトルフォーマットを組み合わせることができません

  4. 新しい自動プレイリストとボイラーを作成します。 3番目のフォルダレベルの音楽のみが表示されます

enter image description here

1
nixda