diff --git a/src/calibre/devices/kobo/driver.py b/src/calibre/devices/kobo/driver.py index 3aba2d049c..ee4909f1bd 100644 --- a/src/calibre/devices/kobo/driver.py +++ b/src/calibre/devices/kobo/driver.py @@ -17,7 +17,7 @@ import os import re import shutil import time -from contextlib import closing +from contextlib import closing, suppress from datetime import datetime from calibre import fsync, prints, strftime @@ -1631,6 +1631,17 @@ class KOBOTOUCH(KOBO): self.set_device_name() return super().get_device_information(end_session) + def post_open_callback(self): + # delete empty directories in root they get left behind when deleting + # books on device. + for prefix in (self._main_prefix, self._card_a_prefix, self._card_b_prefix): + if prefix: + with suppress(OSError): + for de in os.scandir(prefix): + if not de.name.startswith('.') and de.is_dir(): + with suppress(OSError): + os.rmdir(de.path) + def open_linux(self): super().open_linux()