Tools to manipulate files.
- 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
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 scopeuse 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 );
}
}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 );
}
}use fs_tools::glob::Pattern;
let pattern = Pattern::new( "*.rs" ).expect( "valid pattern" );
assert!( pattern.matches( "lib.rs" ) );
assert!( !pattern.matches( "Cargo.toml" ) );# Basic (TempDir only)
cargo add fs_tools
# With glob support
cargo add fs_tools --features glob
# All features
cargo add fs_tools --features fullgit clone https://github.com/Wandalen/wTools
cd wTools
cd examples/test_trivial
cargo run