defer directory creation (fixes #722)

Only call os.makedirs() before a file is getting downloaded,
and not immediately for every Directory message.
This commit is contained in:
Mike Fährmann
2020-07-04 22:00:34 +02:00
parent d5bfb0b38c
commit 4d8b3e4f70

View File

@@ -721,12 +721,10 @@ class PathFormat():
raise exception.DirectoryFormatError(exc)
self.directory = self.realdirectory = ""
self.filename = ""
self.extension = ""
self.prefix = ""
self.kwdict = {}
self.delete = False
self.filename = self.extension = self.prefix = ""
self.path = self.realpath = self.temppath = ""
self.kwdict = {}
self.delete = self._create_directory = False
basedir = extractor._parentdir
if not basedir:
@@ -831,9 +829,7 @@ class PathFormat():
directory += sep
self.realdirectory = directory
# Create directory tree
os.makedirs(self.realdirectory, exist_ok=True)
self._create_directory = True
def set_filename(self, kwdict):
"""Set general filename data"""
@@ -872,6 +868,9 @@ class PathFormat():
def build_path(self):
"""Combine directory and filename to full paths"""
if self._create_directory:
os.makedirs(self.realdirectory, exist_ok=True)
self._create_directory = False
self.filename = filename = self.build_filename()
self.path = self.directory + filename
self.realpath = self.realdirectory + filename