file types

pull/1/head
dvkt 5 years ago
parent db390d1e1d
commit 6f6772f905

@ -40,18 +40,22 @@ async fn respond(stream: &mut TcpStream, selector: &str, root: &str) -> Result<(
let mut response = format!("iPath: {}\r\n", path.to_string_lossy()); let mut response = format!("iPath: {}\r\n", path.to_string_lossy());
let mut dir = fs::read_dir(path.clone()).await?; let mut dir = fs::read_dir(path.clone()).await?;
let mut path = path.to_string_lossy().to_string();
if !path.ends_with('/') {
path.push('/');
}
while let Some(Ok(entry)) = dir.next().await { while let Some(Ok(entry)) = dir.next().await {
response.push_str(&format!( if let Ok(metadata) = entry.metadata().await {
"1{}\t{}{}\tlocalhost\t7070\r\n", let file_type = if metadata.is_file() {
entry.file_name().into_string().unwrap(), '0'
path, } else if metadata.is_dir() {
entry.file_name().into_string().unwrap(), '1'
)); } else {
'3'
};
response.push_str(&format!(
"{}{}\t{}\tlocalhost\t7070\r\n",
file_type,
entry.file_name().into_string().unwrap(),
entry.path().to_string_lossy(),
));
}
} }
stream.write_all(response.as_bytes()).await?; stream.write_all(response.as_bytes()).await?;
Ok(()) Ok(())

Loading…
Cancel
Save