C# Tips


ディレクトリごとコピーするには


.NETにはDirectory.MoveメソッドやFile.CopyToメソッドはあるのに、Direcotry.CopyToメソッドはありません。
ディレクトリごとコピーは自作しなければならないようです。
DirectoryInfoを使用して作成してみました。
//ディレクトリのコピー
public static void DirectoryCopy(string sourcePath, string destinationPath)
{
	DirectoryInfo sourceDirectory = new DirectoryInfo(sourcePath);
	DirectoryInfo destinationDirectory = new DirectoryInfo(destinationPath);
	
	//コピー先のディレクトリがなければ作成する
	if(destinationDirectory.Exists == false)
	{
		destinationDirectory.Create();
		destinationDirectory.Attributes = sourceDirectory.Attributes;
	}

	//ファイルのコピー
	foreach(FileInfo fileInfo in sourceDirectory.GetFiles()) 
	{
		//同じファイルが存在していたら、常に上書きする
		fileInfo.CopyTo(destinationDirectory.FullName + @"\" + fileInfo.Name, true);
	}

	//ディレクトリのコピー(再帰を使用)
	foreach(System.IO.DirectoryInfo directoryInfo in sourceDirectory.GetDirectories())
	{
		DirectoryCopy(directoryInfo.FullName, destinationDirectory.FullName + @"\" + directoryInfo.Name);
	}
}


目次に戻る
Copyright(c) 2008 WoodenSoldier Software