ディレクトリ 1 とディレクトリ 2 があり、それぞれにファイルまたはサブディレクトリを含めることができるとします。これまでのところ、「Directory 2」の名前を「Directory 3」に変更したい場合は、次を実行できます。
Directory.Move("path\Directory 2", "path\Directory 3");
これは正常に動作します - ディレクトリの名前が変更され、そのディレクトリ内のすべてのサブディレクトリとファイルは新しい名前で正常に動作し、コピーを処理する必要はありません。
ただし、これを実行しようとすると:
Directory.Move("path\Directory 2", "path\Directory 1");
ディレクトリ 1 が既に存在するため、エラーが発生します。その場合、ディレクトリ 2 の名前をディレクトリ 1 に変更できない場合は、ディレクトリ 2 のすべてのコンテンツ (ファイルとサブディレクトリ) をディレクトリ 1 に移動する必要があります。これを行う最も簡単な方法は何ですか? ファイルが存在する場合、すべてのサブディレクトリを移動するための foreach、およびすべてのファイルを移動するための foreach が必要ですか? .Move 関数をオーバーロードして、存在エラーに関係なくファイルを移動する簡単な方法はありますか?