#file-path #path #filename #unicode #escaping #encode #data-file

path_to_unicode_filename

该库将文件路径分隔符和常见目录名称编码,生成可逆的Unicode字符串,可用于文件名。当您想从任何文件中提取数据或特征并将它们存储在特定目录中时,它非常有用。

2 个版本

0.1.1 2023年7月22日
0.1.0 2023年7月22日

#1205 in 文件系统

MIT/Apache

26KB
501

GitHub Workflow Status (with event) docs.rs Crates.io Crates.io

path_to_unicode_filename

该库将文件路径分隔符和常见目录名称编码,生成可逆的Unicode字符串,可用于文件名。当您想从任何文件中提取数据或特征并将它们存储在特定目录中时,它非常有用。

它将以下路径字符替换为

  • 字符 \/:*?"<>| 被替换为Unicode的全角替代字符。
  • U+0000 被替换为
  • 常见的目录,如home、documents、pictures等,被替换为OS图标(🍎、🐧等)和目录图标(🏠、📄、🎨等)。
  • 其他字符的替换被替换为其本身的重复字符

示例

use path_to_unicode_filename::*;

// make a filename
assert_eq!(to_filename("/tmp/file.txt"), Ok("/tmp/file.txt".into()));
assert_eq!(to_filename("C:\\Users\\alice\\file.txt"), Ok("💠🏠alice\file.txt".into()));
assert_eq!(to_filename("/Users/alice/Documents/file.txt"), Ok("🍎📄alice/file.txt".into()));

// restore the filename to the original path
assert_eq!(to_path("/var/log/file.txt"), Ok("/var/log/file.txt".into()));
assert_eq!(to_path("🐧🥞sdcard001/file.txt"), Ok("/media/sdcard001/file.txt".into()));
assert_eq!(to_path("🍎🎨bob/file.png"), Ok("/Users/bob/Pictures/file.png".into()));

许可:MIT OR Apache-2.0

依赖关系

~1MB
~20K SLoC