Expand description
§Module :: fs_tools
Tools to manipulate files.
§Features
- TempDir: Temporary directory management with RAII cleanup
full_path()- Compose path from base/prefix/postfix componentscreate()- Create directory (parent must exist)create_all()- Create directory with all parents- Automatic cleanup on drop for created directories
- glob (optional): Unix shell-style pattern matching via re-export
§Basic Usage
§TempDir with RAII Cleanup
ⓘ
use fs_tools::TempDir;
use std::path::PathBuf;
let mut temp = TempDir::new();
temp.base_path = std::env::temp_dir();
temp.prefix_path = PathBuf::from( "my_app" );
temp.postfix_path = PathBuf::from( "session_1" );
// Create directory (enables automatic cleanup)
let path = temp.create_all().expect( "failed to create" );
assert!( path.is_dir() );
// Directory is automatically removed when `temp` goes out of scope§Glob Pattern Matching
use fs_tools::glob::glob;
// Find all Rust files in current directory
for entry in glob( "*.rs" ).expect( "valid pattern" )
{
if let Ok( path ) = entry
{
println!( "{:?}", path );
}
}§Recursive Glob
use fs_tools::glob::glob;
// Find all Rust files recursively
for entry in glob( "src/**/*.rs" ).expect( "valid pattern" )
{
if let Ok( path ) = entry
{
println!( "{:?}", path );
}
}§Pattern Matching
use fs_tools::glob::Pattern;
let pattern = Pattern::new( "*.rs" ).expect( "valid pattern" );
assert!( pattern.matches( "lib.rs" ) );
assert!( !pattern.matches( "Cargo.toml" ) );§To add to your project
# Basic (TempDir only)
cargo add fs_tools
# With glob support
cargo add fs_tools --features glob
# All features
cargo add fs_tools --features full§Try out from the repository
git clone https://github.com/Wandalen/wTools
cd wTools
cd examples/test_trivial
cargo runModules§
- dependency
- Namespace with dependencies.
- exposed
- Exposed namespace of the module.
- fs
- Collection of primal data types.
- glob
- Re-export of the glob crate for filesystem pattern matching.
- orphan
- Shared with parent namespace of the module
- own
- Own namespace of the module.
- path
- Path traversal utilities. Path traversal utilities for filesystem navigation.
- prelude
- Prelude to use essentials:
use my_module ::prelude :: *.
Structs§
- TempDir
- Temporary directory management structure with RAII cleanup.
Functions§
- collect_
files_ in_ ancestors - Collect files matching predicate from current directory up to root.
- dir_
upward_ find - Find directory by name walking upward from start directory.
- file_
upward_ find - Find file by name walking upward from start directory.
- matching_
upward_ find - Find any file or directory matching predicate walking upward.
- traverse_
upward - Traverse upward through directory tree looking for target.