File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -2568,6 +2568,32 @@ impl Path {
2568
2568
fs:: metadata ( self ) . map ( |m| m. is_dir ( ) ) . unwrap_or ( false )
2569
2569
}
2570
2570
2571
+ /// Returns true if the path exists on disk and is pointing at a symbolic link file.
2572
+ /// This method can alse be used to check whether symlink exists.
2573
+ ///
2574
+ /// This function will not traverse symbolic links.
2575
+ /// In case of broken symbolic links this will also return true.
2576
+ ///
2577
+ /// If you cannot access the directory containing the file, e.g., because of a
2578
+ /// permission error, this will return false.
2579
+ ///
2580
+ /// # Examples
2581
+ ///
2582
+ /// ```no_run
2583
+ /// use std::path::Path;
2584
+ /// use std::os::unix::fs::symlink;
2585
+ ///
2586
+ /// let link_path = Path::new("/link");
2587
+ /// symlink("/origin_does_not_exists/", link_path)?;
2588
+ /// assert_eq!(link_path.is_symlink(), true);
2589
+ /// assert_eq!(link_path.exists(), false);
2590
+ /// ```
2591
+ #[ unstable( feature = "path_ext" , issue = "none" ) ]
2592
+ #[ inline]
2593
+ pub fn is_symlink ( & self ) -> bool {
2594
+ fs:: symlink_metadata ( self ) . is_ok ( )
2595
+ }
2596
+
2571
2597
/// Converts a [`Box<Path>`](Box) into a [`PathBuf`] without copying or
2572
2598
/// allocating.
2573
2599
#[ stable( feature = "into_boxed_path" , since = "1.20.0" ) ]
You can’t perform that action at this time.
0 commit comments