That won't work. There are no dir listings and accessing a non-existent file would cause a compile error.
How do you define crate-local? Without cargo support the compiler won't know if files from the OUT_DIR are allowed (build script output). It also won't know if you are allowed to access dirs one level up relative to lib.rs/main.rs are allowed. (most crates put them inside the src subdir, but it is not required. Eg rustc puts them in the same dir as Cargo.toml