diff options
Diffstat (limited to 'src/devices/file.rs')
-rw-r--r-- | src/devices/file.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/devices/file.rs b/src/devices/file.rs index fc1b56c..2a00a59 100644 --- a/src/devices/file.rs +++ b/src/devices/file.rs @@ -12,6 +12,8 @@ pub use directory_listing::*; pub use entry::*; use operations::*; +#[cfg(target_family = "unix")] +use std::os::unix::ffi::OsStrExt; use std::fs::{OpenOptions, metadata}; use std::path::{Component, Path, PathBuf}; @@ -129,6 +131,9 @@ impl FileDevice { let file_entry = Entry::File(BufferedFile::new(file)); self.entry = Some((file_entry, path.to_owned())); let relative = remove_base(&path, &self.base_path).unwrap(); + #[cfg(target_family = "unix")] + self.name_buffer.populate(relative.as_os_str().as_bytes()); + #[cfg(target_family = "windows")] self.name_buffer.populate(relative.as_os_str().as_encoded_bytes()); return Ok(()); }; @@ -137,6 +142,9 @@ impl FileDevice { let dir_entry = Entry::Directory(listing); self.entry = Some((dir_entry, path.to_owned())); let relative = remove_base(&path, &self.base_path).unwrap(); + #[cfg(target_family = "unix")] + self.name_buffer.populate(relative.as_os_str().as_bytes()); + #[cfg(target_family = "windows")] self.name_buffer.populate(relative.as_os_str().as_encoded_bytes()); return Ok(()); }; |