Почему я не могу прочитать subdir с моим рекурсивным кодом - PullRequest
0 голосов
/ 20 октября 2019

Эта ошибка появилась, когда я запустил мой рекурсив для чтения всех подкаталогов, я не знаю, как решить эту проблему

Это мой рекурсивный код

    private void recursiveSubDir(dynamic workingdirectories)
    {

        var targetDir = workingdirectories;
        foreach (string _selectedDir in targetDir)
        {

            var targetFile = Directory.GetFiles(_selectedDir);
            foreach (var selectedFile in targetFile)
            {
                string enc_selectedFile = GetMD5FromFile(selectedFile);
                string[] md5text = File.ReadAllLines("md5 encryptor.txt");
                foreach (string md5textcheck in md5text)
                {
                    if (enc_selectedFile.Contains(md5textcheck))
                    {
                        virus = virus + 1;
                    }
                }

            }
            MessageBox.Show(_selectedDir);
            recursiveSubDir(_selectedDir);
        }
    }

иэто я называю рекурсивным

try{ string[] md5text = File.ReadAllLines("md5 encryptor.txt");
                string[] files = Directory.GetFiles(lokdirek);
                var dirs = Directory.GetDirectories(lokdirek, "*", SearchOption.TopDirectoryOnly).Where(d => !isexcluded(_excludeDirectories, d));

                int directoryCount = System.IO.Directory.GetDirectories(lokdirek).Length;
                recursiveSubDir(dirs); }

1 Ответ

0 голосов
/ 20 октября 2019

проверить тип рабочих каталогов. Фактический код (с которого вы отправляете картинку) немного отличается от того, который вы опубликовали. На рисунке это выглядит так:

foreach (var _selectedDir in targetDir)

Таким образом, вместо строки есть переменная, и тогда у нас нет уверенности в том, что _selectedDir на самом деле является строкой. Он может содержать, например, объекты, которые будут создавать аналогичные ошибки. Если вы исправите это так, что приведенная выше строка будет похожа на ту, которую вы опубликовали, и вы получите InvalidCastException во время выполнения, то я почти уверен, что это проблема.

...