Exemplo n.º 1
0
 def send_directory_listing(self, path, mlsd=False, linux_mode=False):
     fi = FileInfo(path)
     if not fi.exists() or not fi.is_dir():
         self.control.write_message("500 Directory does not exist.")
         return Session.ACTION_CLOSE_DATA
     try:
         file_list = os.listdir(path)
     except Exception as e:
         self.control.write_message("500 Error listing <%s>: %s"% (path, str(e)))
         return Session.ACTION_CLOSE_DATA
     self.control.write_message("150 OK")
     for p in file_list:
         try:
             fi = FileInfo(os.path.normpath(os.path.join(path,p)))
             if mlsd:
                 self.data.write_message(fi.as_mlist())
             elif linux_mode:
                 self.data.write_message(fi.list())
             else:
                 self.data.write_message(fi.simple_list())
         except Exception as e:
             self.LOG.debug("Error listing %s : %s" % (p, str(e)) )
     self.post_transfer()
     return Session.ACTION_CLOSE_DATA