如何创建 include_str 的易错版本?

How do I create a fallible version of include_str?

如果请求的文件不存在,

include_str!("file") 会在编译时失败。我正在寻找一个宏,而不是 returns None 在这种情况下:try_include_str!("file") -> Option<&'static str>.

如果我可以在编译时检查文件是否存在,这将是相当简单的,但据我所知,std 中没有为此公开的宏。 我还能如何实现它?

您可以使用 include_dir 执行此操作,因为它可以让您检查包含的目录中是否存在路径。

缺点:它将包含目录中的所有文件,其中可能包含您根本不打算访问的文件,从而增加了二进制文件的大小。但是如果你能安排成只有你关心的文件在某个目录下,不管它们是否存在,那应该就可以了。