ディレクトリ内のファイルを移動する、コピーする

ディレクトリ内のファイルを一気に移動したり、コピーしたいときのソースコードを示します。

引数 dirpath_dst は "d:/vvv" のように指定してください。移動先のディレクトリです。
引数 dirpath_src は "c:/uuu" のように指定してください。移動元のディレクトリです。

引数 flag_move_is_true_copy_is_false で true/false で指定してください。
true のときはファイル移動です、false のときはファイルコピーです。

引数 search_pattern で対象とするファイルを指定します。
"*" だとすべてのファイルを移動またはコピーします。
"*.png" だと png だけ、"*.bmp" だと bmp だけ、"*.txt" だと txt だけ移動またはコピーします。

Directory.GetFiles() で対象のファイルを列挙して配列に格納します。その配列のデータをもとに File.Move() します。ファイルをコピーする場合は File.Copy() します。

using System.IO; の追加をお忘れなく.

public bool FileMoveInTheDirectory( String dirpath_dst, String dirpath_src, bool flag_move_is_true_copy_is_false, String search_pattern )
{

	SearchOption sop = SearchOption.AllDirectories;
	String[] arr = Directory.GetFiles( dirpath_src, search_pattern, sop );

	if ( arr != null )
	{
		if ( arr.Length > 0 )
		{

			for ( int k = 0; k < arr.Length; k++ )
			{

				String fnm = Path.GetFileName( arr[k] );
				String filepath_dst = Path.Combine( dirpath_dst, fnm );

				try
				{

					if ( flag_move_is_true_copy_is_false )
					{
						// ファイルを移動する.
						File.Move( arr[k], filepath_dst );
					}
					else
					{
						// ファイルをコピーする.
						File.Copy( arr[k], filepath_dst );
					}


				}
				catch ( Exception excp )
				{
					throw new Exception( excp.Message );
				}

			}

		}
	}

	return true;

}

xcopy や robocopy のバッチコマンドを発行する方法もありますが、オプションがたくさんありすぎて自分でコードを書いたほうがラクだと思います。