Temp_dir returning short form path on windows

When using the temp_dir function on windows am am being returned paths seemingly in "short form", for example:
use std::env;

fn main() {
    dbg!(env::temp_dir());
}

produces

[src\main.rs:4] env::temp_dir() = "C:\Users\MYUSER~1.COR\AppData\Local\Temp\"

Where the actual full path of this directory is "C:\Users\myusername.CORP\AppData\Local\Temp"

Is there a way to either make temp_dir() return the full path, or convert to the full path afterwards? (I ask as libgit2 seems to not like the short form path)

There is std::fs::canonicalize() that expands paths to their canonical form, but this one in turn gives UNC paths in form \\?\C:\, which some applications don't like either. So I wrote dunce for this.

2 Likes

This doesn't answer you question but it might also be worth opening an issue with libgit2. This sounds like something they may want to resolve.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.