フォルダーごとコピー
こんな事するとひどい事になるのでやめてください。
DirectoryCopy("C:\\","d:\\");
ディレクトリーツリーをたどって、全部コピーするコード。
最近のだと、命令で一発でできそうだけどリカーシブルコールの練習に書いてみました。
単純に、だーっとコーディングすると、階層分繰り返せばいいんですけど、再帰呼び出しをつかうと、無制限に階層を増やせます。
作ったことないけど、オセロとかの次の手、次の手・・・って感じのプログラムにもつかえそう。
アンコちゃんの設定フォルダーを変更したときに、中身を移行してくれる仕組みに使用されます。
といっても、見た目じゃわかりませんけどね。
void DirectoryCopy(string srcPath,string dstPath) { //コピー先フォルダー作成 if (!System.IO.Directory.Exists(dstPath)) System.IO.Directory.CreateDirectory(dstPath); //サブディレクトリーが存在する間 string[] subdir = System.IO.Directory.GetDirectories(srcPath); foreach (string path in subdir) { //dstpathも作成 System.IO.DirectoryInfo fn = new System.IO.DirectoryInfo(path); DirectoryCopy(path, dstPath + "\\" + fn.Name); } //ファイルのコピー string[] files = System.IO.Directory.GetFiles(srcPath); foreach(string file in files) { System.IO.FileInfo fi =new System.IO.FileInfo(file); System.IO.File.Copy(file, dstPath + "\\" + fi.Name); } }