diff --git a/tagstudio/src/qt/helpers/file_opener.py b/tagstudio/src/qt/helpers/file_opener.py index 82461242..65ab54a3 100644 --- a/tagstudio/src/qt/helpers/file_opener.py +++ b/tagstudio/src/qt/helpers/file_opener.py @@ -35,13 +35,15 @@ def open_file(path: str, file_manager: bool = False): if sys.platform == "win32": normpath = os.path.normpath(path) if file_manager: - command_name = "explorer" - command_args = [f"/select,{normpath}"] + command_name = "explorer" + command_args = '/select,"' + normpath + '"' + # If the args are passed in a list, this will error when the path has spaces, even while surrounded in doule quotes. IDK why + subprocess.Popen(command_name + command_args, shell=True, close_fds=True, creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.CREATE_BREAKAWAY_FROM_JOB) else: command_name = "start" # first parameter is for title, NOT filepath command_args = ["", normpath] - subprocess.Popen([command_name] + command_args, shell=True, close_fds=True, creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.CREATE_BREAKAWAY_FROM_JOB) + subprocess.Popen([command_name] + command_args, shell=True, close_fds=True, creationflags=subprocess.CREATE_NEW_PROCESS_GROUP | subprocess.CREATE_BREAKAWAY_FROM_JOB) else: if sys.platform == "darwin": command_name = "open"