# 1.5.0[−][src]Function std::fs::canonicalize

    pub fn canonicalize<P: AsRef<Path>>(path: P) -> Result<PathBuf>

Returns the canonical, absolute form of a path with all intermediate components normalized and symbolic links resolved.

# Platform-specific behavior

This function currently corresponds to the `realpath` function on Unix and the `CreateFile` and `GetFinalPathNameByHandle` functions on Windows. Note that, this may change in the future.

On Windows, this converts the path to use extended length path syntax, which allows your program to use longer path names, but means you can only join backslash-delimited paths to it, and it may be incompatible with other applications (if passed to the application on the command-line, or written to a file another application may read).

# Errors

This function will return an error in the following situations, but is not limited to just these cases:

- `path` does not exist.
- A non-final component in path is not a directory.

# Examples

    use std::fs;

    fn main() -> std::io::Result<()> {
        let path = fs::canonicalize("../a/../foo.txt")?;
        Ok(())
    }Run

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)