ntfsanitise 0.2.0

Sanitise filenames for use on NTFS filesystems
Documentation

ntfsanitise

Unsafe forbidden Latest Version docs.rs MSRV License Coverage Pipeline Status

A tiny crate for sanitising filenames for use on NTFS filesystems.

The set of banned characters are exported as the constant BANNED.

Usage

use ntfsanitise::{sanitise, is_dirty, is_clean, PathExt, PathBufExt};
use std::path::PathBuf;

fn main() {
	// sanitise strings
	let input = "unsuitable:filename?.txt";
	assert!(is_dirty(input));
	let sanitised = sanitise(input, "_");
	assert_eq!(sanitised, "unsuitable_filename_.txt");
	assert!(is_clean(sanitised));

	// sanitise paths
	let mut path = PathBuf::from("/home/user/<file>.txt");
	assert!(path.is_dirty());
	path.sanitise_filename("_");

	assert!(path.is_clean());
	assert!(path.file_name().is_some_and(|file_name| file_name.to_str() == Some("_file_.txt")));
}