-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 mkdir、およびrename関数を使用します。

opendir と readdir を使用してディレクトリをループし、/foo を作成して、各ディレクトリを一度に 1 つずつ移動できます。しかし、より簡単で高速な方法もあります。

  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 に答える