プログラムがファイルを繰り返し処理しているため、非常に奇妙です! outfolder と infolder は両方とも H:/ Windows 7 を使用している私の外部 HD にあります。拡張子 db と svn-base を持つファイルのみを含むすべてのフォルダーを移動するという考えです。フォルダを移動しようとすると、例外が発生します。VS2010は、dirで指定されたフォルダーが見つからないことを教えてくれます。このコードは dir を反復処理しているため、どうして見つからないのでしょうか! これは奇妙です。
string []theExt = new string[] { "db", "svn-base" };
foreach (var dir in Directory.GetDirectories(infolder))
{
bool hit = false;
if (Directory.GetDirectories(dir).Count() > 0)
continue;
foreach (var f in Directory.GetFiles(dir))
{
var ext = Path.GetExtension(f).Substring(1);
if(theExt.Contains(ext) == false)
{
hit = true;
break;
}
}
if (!hit)
{
var dst = outfolder + "\\" + Path.GetFileName(dir);
File.Move(dir, outfolder); //FileNotFoundException: Could not find file dir.
}
}
}