diff --git a/core/src/services/ftp/lister.rs b/core/src/services/ftp/lister.rs index c3625a2eed0..6dedc8f455f 100644 --- a/core/src/services/ftp/lister.rs +++ b/core/src/services/ftp/lister.rs @@ -49,17 +49,22 @@ impl oio::List for FtpLister { let path = self.path.to_string() + de.name(); + let mut meta = if de.is_file() { + Metadata::new(EntryMode::FILE) + } else if de.is_directory() { + Metadata::new(EntryMode::DIR) + } else { + Metadata::new(EntryMode::Unknown) + }; + meta.set_content_length(de.size() as u64); + meta.set_last_modified(de.modified().into()); + let entry = if de.is_file() { - oio::Entry::new( - &path, - Metadata::new(EntryMode::FILE) - .with_content_length(de.size() as u64) - .with_last_modified(de.modified().into()), - ) + oio::Entry::new(&path, meta) } else if de.is_directory() { - oio::Entry::new(&format!("{}/", &path), Metadata::new(EntryMode::DIR)) + oio::Entry::new(&format!("{}/", &path), meta) } else { - oio::Entry::new(&path, Metadata::new(EntryMode::Unknown)) + oio::Entry::new(&path, meta) }; Ok(Some(entry))