Features
- Recursive File Visiting: Traverse directory trees with extension filtering
- Content Reading: Read file contents during traversal
- Extension Filtering: Filter files by multiple extensions
- Error Handling: Comprehensive error propagation
- Callback-Based API: Process files with custom logic
Installation
Addbomboni_fs to your Cargo.toml:
File Visiting
Recursively visit files in a directory with extension filtering:Multiple Extensions
Filter files by multiple extensions:Processing Files
Process files as they’re discovered:Reading File Contents
Visit files and automatically read their contents:Content Analysis
Analyze file contents during traversal:Content Modification
Read, process, and modify file contents:Error Handling
Both functions support custom error types that implementError and From<io::Error>:
Practical Examples
File Statistics
Gather statistics about your codebase:Finding Files
Search for files matching specific criteria:Build Script Integration
Use in build scripts to process files:Testing Utilities
Create test helpers for file operations:Performance Considerations
Buffered Processing
For large directories, consider processing files in batches:Memory Efficiency
When usingvisit_files_contents, the content is passed directly to your callback, avoiding unnecessary allocations:
API Reference
Recursively visits files in a directory with specified extensions.Parameters:
dir: impl AsRef<Path>- The directory to searchextensions: &[&str]- File extensions to match (without dots)cb: &mut dyn FnMut(&DirEntry) -> Result<(), E>- Callback for each matching file
Result<(), E> where E: Error + From<io::Error>Errors: Returns error if directory reading fails or callback returns errorRecursively visits files and reads their contents.Parameters:
dir: impl AsRef<Path>- The directory to searchextensions: &[&str]- File extensions to match (without dots)cb: &mut dyn FnMut(&DirEntry, String) -> Result<(), E>- Callback with file entry and contents
Result<(), E> where E: Error + From<io::Error>Errors: Returns error if directory reading, file reading, or callback failsRelated Modules
bomboni_common
Common utilities and types
bomboni_core
Core utilities and abstractions