Domanda

La sua estremamente strano dato che il programma è iterazione il file! outfolder e infolder sono entrambi in H: / il mio HD esterno utilizzando Windows 7. L 'idea è quella di spostare tutte le cartelle che contengono solo i file con l'estensione db e svn-base. Quando provo a spostare la cartella ottengo un'eccezione. VS2010 mi dice che cant trovare la cartella specificata in dir. Questo codice viene scorrendo dir così come può non trovarlo! questo è strano.

        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.
            }
        }
    }
È stato utile?

Soluzione

Credo che si sta tentando di spostare una intera directory utilizzando File.Move che si aspetta un nome di file.

Prova a usare Directory.Move invece dal momento che consentono di spostare intere cartelle.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top