Frage

Die extrem seltsam, da das Programm iteriert die Datei! outfolder und infolder sind beide in H: / meine externe HD Fenster mit 7. Die Idee ist, alle Ordner zu verschieben, die nur Dateien mit der Endung db und SVN-Basis enthalten. Wenn ich versuche, den Ordner zu verschieben erhalte ich eine Ausnahme. VS2010 sagt mir, es kann nicht den Ordner, in dir angegeben finden. Dieser Code wird Iterieren durch dir so wie kann es nicht finden! Das ist seltsam.

        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.
            }
        }
    }
War es hilfreich?

Lösung

Ich glaube, Sie versuchen, ein ganzes Verzeichnis verschieben mit File.Move die einen Dateinamen erwartet.

Versuchen Sie es mit Directory.Move statt da, mit denen Sie um ganze Ordner zu verschieben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top