* Use os.makedirs() instead os.mkdir(). (bug #975763)
* Use copystat() to copy directory bits (bug #1048878)
This commit is contained in:
Johannes Gijsbers 2005-01-08 12:31:29 +00:00
parent 711906e0c2
commit e4172eadf3
2 changed files with 14 additions and 5 deletions

View File

@ -67,8 +67,10 @@ file type and creator codes will not be correct.
\begin{funcdesc}{copytree}{src, dst\optional{, symlinks}}
Recursively copy an entire directory tree rooted at \var{src}. The
destination directory, named by \var{dst}, must not already exist;
it will be created. Individual files are copied using
\function{copy2()}. If \var{symlinks} is true, symbolic links in
it will be created as well as missing parent directories.
Permissions and times of directories are copied with \function{copystat()},
individual files are copied using \function{copy2()}.
If \var{symlinks} is true, symbolic links in
the source tree are represented as symbolic links in the new tree;
if false or omitted, the contents of the linked files are copied to
the new tree. If exception(s) occur, an Error is raised
@ -76,8 +78,14 @@ file type and creator codes will not be correct.
The source code for this should be considered an example rather than
a tool.
\versionchanged[Error is raised if any exceptions occur during copying,
rather than printing a message]{2.3}
\versionchanged[Error is raised if any exceptions occur during copying,
rather than printing a message]{2.3}
\versionchanged[Create intermediate directories needed to create \var{dst},
rather than raising an error. Copy permissions and times of directories using
\function{copystat()}]{2.5}
\end{funcdesc}
\begin{funcdesc}{rmtree}{path\optional{, ignore_errors\optional{, onerror}}}

View File

@ -108,7 +108,8 @@ def copytree(src, dst, symlinks=False):
"""
names = os.listdir(src)
os.mkdir(dst)
os.makedirs(dst)
copystat(src, dst)
errors = []
for name in names:
srcname = os.path.join(src, name)