Pergunta

É extremamente estranho, já que o programa está iterando o arquivo! O Outfolder e o Infolder estão em H:/ meu HD externo usando o Windows 7. A idéia é mover todas as pastas que contêm apenas arquivos com a extensão DB e SVN-BASE. Quando tento mover a pasta, recebo uma exceção. O VS2010 me diz que não consegue encontrar a pasta especificada no dir. Este código está iterando através do DIR, como pode não encontrá -lo! Isso é estranho.

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

Solução

Eu acredito que você está tentando mover um diretório inteiro usando File.move que espera um nome de arquivo.

Tente usar Diretório.move Em vez disso, pois isso permite que você mova pastas inteiras.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top