pub struct DirEntry<C: ClientState> {
pub depth: usize,
pub file_name: OsString,
pub file_type: FileType,
pub client_state: C::DirEntryState,
pub parent_path: Arc<Path>,
pub read_children_path: Option<Arc<Path>>,
pub read_children_error: Option<Error>,
/* private fields */
}
Expand description
Representation of a file or directory.
This representation does not wrap a std::fs::DirEntry
. Instead it copies
file_name
, file_type
, and optionally metadata
out of the underlying
std::fs::DirEntry
. This allows it to quickly drop the underlying file
descriptor.
Fields§
§depth: usize
Depth of this entry relative to the root directory where the walk started.
file_name: OsString
File name of this entry without leading path component.
file_type: FileType
File type for the file/directory that this entry points at.
client_state: C::DirEntryState
Field where clients can store state from within the The
process_read_dir
callback.
parent_path: Arc<Path>
Path used by this entry’s parent to read this entry.
read_children_path: Option<Arc<Path>>
Path that will be used to read child entries. This is automatically set
for directories. The
process_read_dir
callback
may set this field to None
to skip reading the contents of a
particular directory.
read_children_error: Option<Error>
If read_children_path
is set and resulting fs::read_dir
generates an error
then that error is stored here.
Implementations§
source§impl<C: ClientState> DirEntry<C>
impl<C: ClientState> DirEntry<C>
sourcepub fn file_type(&self) -> FileType
pub fn file_type(&self) -> FileType
Return the file type for the file that this entry points to.
If this is a symbolic link and follow_links
is true
, then this
returns the type of the target.
This never makes any system calls.
sourcepub fn file_name(&self) -> &OsStr
pub fn file_name(&self) -> &OsStr
Return the file name of this entry.
If this entry has no file name (e.g., /
), then the full path is
returned.
sourcepub fn depth(&self) -> usize
pub fn depth(&self) -> usize
Returns the depth at which this entry was created relative to the root.
The smallest depth is 0
and always corresponds to the path given
to the new
function on WalkDir
. Its direct descendants have depth
1
, and their descendants have depth 2
, and so on.
sourcepub fn path(&self) -> PathBuf
pub fn path(&self) -> PathBuf
Path to the file/directory represented by this entry.
The path is created by joining parent_path
with file_name
.
sourcepub fn path_is_symlink(&self) -> bool
pub fn path_is_symlink(&self) -> bool
Returns true
if and only if this entry was created from a symbolic
link. This is unaffected by the follow_links
setting.
When true
, the value returned by the path
method is a
symbolic link name. To get the full target path, you must call
std::fs::read_link(entry.path())
.
sourcepub fn metadata(&self) -> Result<Metadata>
pub fn metadata(&self) -> Result<Metadata>
Return the metadata for the file that this entry points to.
This will follow symbolic links if and only if the WalkDir
value
has follow_links
enabled.
Platform behavior
This always calls std::fs::symlink_metadata
.
If this entry is a symbolic link and follow_links
is enabled, then
std::fs::metadata
is called instead.
Errors
Similar to std::fs::metadata
, returns errors for path values that
the program does not have permissions to access or if the path does not
exist.
sourcepub fn parent_path(&self) -> &Path
pub fn parent_path(&self) -> &Path
Reference to the path of the directory containing this entry.