From e621955a22977439c58e2ac253b2884127fd3d74 Mon Sep 17 00:00:00 2001 From: loathingKernel <142770+loathingKernel@users.noreply.github.com> Date: Tue, 13 Sep 2022 10:08:03 +0300 Subject: [PATCH] RareSettings: Handle permission error when deleting logs --- rare/components/tabs/settings/rare.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/rare/components/tabs/settings/rare.py b/rare/components/tabs/settings/rare.py index c7a5fd1b..4f549f37 100644 --- a/rare/components/tabs/settings/rare.py +++ b/rare/components/tabs/settings/rare.py @@ -143,18 +143,28 @@ class RareSettings(QWidget, Ui_RareSettings): self.log_dir_clean_button.clicked.connect(self.clean_logdir) # get size of logdir - size = 0 - for i in os.listdir(log_dir()): - size += os.path.getsize(os.path.join(log_dir(), i)) - + size = sum( + log_dir().joinpath(f).stat().st_size + for f in log_dir().iterdir() + if log_dir().joinpath(f).is_file() + ) self.log_dir_size_label.setText(get_size(size)) # self.log_dir_clean_button.setVisible(False) # self.log_dir_size_label.setVisible(False) def clean_logdir(self): - for i in os.listdir(log_dir()): - os.remove(os.path.join(log_dir(), f"{i}")) - self.log_dir_size_label.setText("0KB") + for f in log_dir().iterdir(): + try: + if log_dir().joinpath(f).is_file(): + log_dir().joinpath(f).unlink() + except PermissionError as e: + logger.error(e) + size = sum( + log_dir().joinpath(f).stat().st_size + for f in log_dir().iterdir() + if log_dir().joinpath(f).is_file() + ) + self.log_dir_size_label.setText(get_size(size)) def create_start_menu_link(self): try: