它,因为程序极其怪异的迭代文件! outfolder和infolder都在H:使用Windows 7 /我的外置HD的想法是移动仅包含以进一步扩展DB和svn基文件的所有文件夹。当我尝试移动文件夹我得到一个异常。 VS2010告诉我,它无法找到在目录中指定的文件夹。此代码是通过遍历目录这样怎么能不找到它!这是奇怪。

        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.
            }
        }
    }
有帮助吗?

解决方案

我相信你试图移动使用的 File.Move 它期望的文件名。

尝试使用 Directory.Move 代替因为这允许你四处移动整个文件夹。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top