Pregunta

Es extremadamente raro ya que el programa está iterando el archivo! outfolder y infolder son tanto en H: / mi HD externo utilizando Windows 7. La idea es mover todas las carpetas que contienen sólo los archivos con la extensión db y SVN-base. Cuando trato de mover la carpeta me sale una excepción. VS2010 me dice que no puede encontrar la carpeta especificada en dir. Este código es la iteración a través dir así que ¿cómo puede no encontrarlo! esto es raro.

        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.
            }
        }
    }
¿Fue útil?

Solución

Creo que está intentando mover un directorio completo usando File.Move que espera un nombre de archivo.

Trate de usar Directory.Move vez ya que le permiten mover carpetas enteras alrededor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top