Houdini - File Search
Extension for searching files in a directory or recursively in all nested directories on the disk and displaying them in a dropdown menu.
Key Features:
- Filter by Mask with standard syntax or Regular Expression on Python.*
- Sort results by Name, Modification, or Creation Time, and Directory Depth.
- Group Result by Python Regular Expression with Including or Excluding option from filename and display in a dropdown menu only the newest files.**
- Replace parts of the filename with Custom String or Regular Expression.***
- Enable or Disable Recursive mode and limit the depth of searching.
* Mask has two options:
Simple:
* -
matches everything
? -
matches any single character
[seq] -
matches any character in seq
[!seq] -
matches any character not in seq
Regular Expression:
Documentation: Python Regular Expression Documentation
You can check your pattern: RegEx101.com
- Example to show files with multiple extensions: [.](abc|fbx|obj|bgeo)
- Example to exclude files with "animation" in the filename:
(?<!animation)[.](abc|fbx|obj|bgeo) → char_woman_animation.abc (exclude from the result)
(?<!animation)_.+[.](abc|fbx|obj|bgeo) → char_woman_animation_v001.abc (exclude from the result)
** You can group by any pattern. This pattern takes a part from the filename to set as a group name or removes it from the file name to get the same filenames for grouping.
Example 1:
character_animation_v001.abc, character_animation_v002.abc, character_animation_v003.abc, character_animation_v004.abc, character_animation_v005.abc → character_animation_v005.abc
Group Pattern: v\d{1, 3} or v\d+
Pattern Mode: Exclude (removing v001, v002, v003, v004, v005 from filenames to get the same name for grouping)
Partition: 1 (element's count will be displayed in the dropdown menu)
Partition Mode: From Start (to get 1st element if you sort by Descending Order) or From End (to get 1st element if you sort by Ascending Order)
*** You can replace any part of the filename. And display in a dropdown menu unique items:
Example 1:
brick (albedo).jpg, brick (roughness).jpg, brick (specular).jpg, brick (normal).jpg, brick (bump).jpg → brick ($OS).jpg
Replace from: [Aa]lbedo|[Rr]oughness|[Ss]pecular|[Nn]ormal|[Bb]ump
Replace to: \$OS (slash is required to escape variables)
Example 2:
skin_color.1001.png, skin_color.1002.png, skin_color.1003.png → skin_color.<UDIM>.png
Replace from: \d{4}
Replace to: <UDIM>
Extensions for Geometry File, Alembic, Rop Geometry, Rop Alembic, Rop FBX, RS Texture nodes