-1

我有一个父目录:

"path/to/dir"

在这个父目录中,我有几个子目录:

"dir/subA"
"dir/subB"
"dir/subC"

我想将所有这些子目录移动到中间目录“foo”中,以便最终结果应该是:

"path/to/dir/foo/subA" 
"path/to/dir/foo/subB"
"path/to/dir/foo/subC"

我怎样才能做到这一点?

4

1 回答 1

1

使用tempnamunlinkstat mkdirrename函数。

您可以使用 opendir 和 readdir 遍历目录,然后制作 /foo,并一次移动每个目录。但是有一种更简单的方法也更快。

  1. 使用 tempnam 为“path/to”中的临时文件获取唯一名称。
  2. 使用 stat 获取“path/to/dir”的权限
  3. tempnam 创建一个具有唯一名称的文件。使用 unlink 删除该文件,然后使用 mkdir 和 stat() 的结果创建一个新目录,该目录具有 tempnam 返回的唯一临时名称
  4. 使用重命名将“path/to/dir”移动到“path/to/tempdir/foo”
  5. 使用重命名将“path/to/tempdir”更改为“path/to/dir”
于 2013-03-03T20:36:19.580 回答