January 2018
Beginner to intermediate
454 pages
10h 8m
English
Now that we know how to play with paths nicely, it'd be a shame not fully implement the LIST command, right?
To complete it, you'll need to update the Command::List variant in order to make it accept PathBuf as an argument.
So, we currently have the following code:
Command::List => { if let Some(ref mut data_writer) = self.data_writer { let mut tmp = PathBuf::from("."); send_cmd(&mut self.stream, ResultCode::DataConnectionAlreadyOpen, "Starting to list directory..."); let mut out = String::new(); for entry in read_dir(tmp).unwrap() { for entry in dir { if let Ok(entry) = entry { add_file_info(entry.path(), &mut out); } } send_data(data_writer, &out) } } else { send_cmd(&mut self.stream, ResultCode::ConnectionClosed, ...